對話方塊介面上直接顯示影象(含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...