opencv學習筆記(一)

2021-06-11 00:53:41 字數 2132 閱讀 6795

對話方塊介面上直接顯示影象(含opencv內容)

第一部分(建立顯示影象區域)

1、建立對話方塊工程mymfc

2、在第三步中選擇「as a statically linked library」

3、設定opencv環境變數

4、在mymfc.h檔案中新增如下**:

#include 「cv.h」

#include 「highgui.h」

#define image_width 256

#define image_height 256 //假設要顯示的影象是256*256

#define image_channels 3

5、為cmymfcdlg類新增成員變數iplimage* theimage

6、在mymfcdlg.h中放置如下**到protected下面:

bitmapinfo* bmi;

bitmapinfoheader* bmih;

rgbquad* palette;

unsigned int buffer[sizeof(bitmapinfoheader)+sizeof(rgbquad)*256];

7、雙擊cmymfcdlg類中的oninitdialog(),在「// todo: add extra initialization here」下面新增如下**:

//建立ipl影象

cvsize imgsize;

imgsize.width=image_width;

imgsize.height=image_height;

theimage=cvcreateimage(imgsize,ipl_depth_8u,image_channels);

//下面這段語句不是必需的,這裡將在對話方塊中顯示一幅建立的影象

if(theimage->nchannels==1)//對灰度影象

}else if(theimage->nchannels==3)//對rgb影象

//下面幾行用來初始化bmp的顯示快取,這是必需的

bmi=(bitmapinfo*)buffer;

bmih=&(bmi->bmiheader);

memset(bmih,0,sizeof(*bmih));

bmih->bisize=sizeof(bitmapinfoheader);

bmih->biwidth=image_width;

bmih->biheight=-image_height;

bmih->biplanes=1;

bmih->bicompression=bi_rgb;

bmih->bibitcount=8*theimage->nchannels;

palette=bmi->bmicolors;

if(theimage->nchannels==1)

}8、為cmymfcdlg類新增成員函式 void displaymydata(),新增如下語句:

cpaintdc dc(this);

cdc* pdc=&dc;

int res=stretchdibits(pdc->getsafehdc(),

0,0,

int(image_width),

int(image_height),

0,0,

image_width,

iamge_height,

theimage->imagedata,

(bitmapinfo*)bmi,

dib_rgb_colors,

srccopy);

//更新視窗,重新繪製

redrawwindow(

null,

null,

rdw_invalidate

);9、在onpaint()函式的else 部分中,在「cdialog::onpaint();」前面新增如下**:

displaymydata();

10、在initinstance()函式的「//todo:」後面新增如下**用來釋放影象記憶體:

cvreleaseimage(&dlg.theimage);

11、編譯執行。

Opencv學習筆記 一

一 opencv的命名空間 opencv中的c 類和函式都是定義在命名空間cv中的,有兩種方法訪問 在 開頭加上以下這句 using namespace cv 開頭一般可寫成 include includeusing namespace cv using namespace std 二 mat類的使...

OpenCV學習筆記(一)

opencv是乙個開源的計算機視覺庫,設計目標是執行速度進,盡量快,主要關注實時應用。構建乙個簡單易用的計算機視覺框架,以幫助開發人員更見便捷地設計複雜的計算視覺相關應用程式。opencv當初的三大目標 為基本的視覺應用提供開放且優化的源 以促進視覺研究的發展。能有效地避免 閉門造車 通過提供乙個通...

opencv學習筆記(一)

灰度圖 2維矩陣 彩色圖 3維矩陣 ps 目前大部分裝置都是用無符號 8 位整數 型別為 cv 8u 表示畫素亮度 mat類定義 class cv exports mat 單通道影象 元素型別一般為 8u 即 8 位無符號整數 也可以是 16s 32f 等 這些型別可以直接用 uchar short...