今天学习了《Opencv教程基础篇》的第二章,通过MFC使用Opencv对图像进行了Canny处理,感觉非常方便。
1. 首先定义一个IplImage*变量TheImage,对其进行处理,然后定义一个对图像进行缓存的BMP变量,这其中包括两部分BITBMPHEADER,和BITBMPINFO。在CXDlg的OnInitialDialog()函数中进行定义。
//创建IPL图像
CvSize ImgSize;
ImgSize.width=IMAGE_WIDTH;
ImgSize.height=IMAGE_HEIGHT;
TheImage = cvCreateImage(ImgSize,IPL_DEPTH_8U,IMAGE_CHANNELS);
if (TheImage->nChannels == 1)
{
float dx=(TheImage->width/256.0f);
for (int w=0; w<TheImage->width;w++)
for(int h=0; h<TheImage->height;h++)
TheImage->imageData[TheImage->height*w+h]=(unsigned char)(w/dx);
}
else if(TheImage->nChannels == 3)
{
IplImage* Temp = cvCreateImage(ImgSize,IPL_DEPTH_8U,1);
int h,w;
float dx=(Temp->width/256.0f);
for (w=0; w < Temp->width;w++)
for (h=0;h<Temp->height;h++)