在MFC中使用OpenCV教程

在MFC中使用OpenCV教程

ID:37644780

大小:288.67 KB

页数:16页

时间:2019-05-27

在MFC中使用OpenCV教程_第1页
在MFC中使用OpenCV教程_第2页
在MFC中使用OpenCV教程_第3页
在MFC中使用OpenCV教程_第4页
在MFC中使用OpenCV教程_第5页
资源描述:

《在MFC中使用OpenCV教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VC开发网http://www.vckf.net在MFC中使用OpenCV在MFC中使用OpenCV演示程序CVMFC本程序是在MFC中使用OpenCV的演示程序,由3部分组成。一、Windows下用MFC编制的程序框架采用设备无关位图DIB实现Windows多文档模式下图像的显示,实现显示的关键函数StretchDIBits的原型如下:intStretchDIBits(HDChdc,//显示设备句柄intXDest,//目标矩形区域左上角X坐标intYDest,//目标矩形区域左上角Y坐标intnDestWidth,//目标矩形区域宽度intnDestH

2、eight,//目标矩形区域高度intXSrc,//源矩形区域左上角X坐标intYSrc,//源矩形区域左上角Y坐标intnSrcWidth,//源矩形区域宽度intnSrcHeight,//源矩形区域高度CONSTVOID*lpBits,//位图的像素存放首地址CONSTBITMAPINFO*lpBitsInfo,//位图信息存放地址UINTiUsage,//位图中的颜色类型,RGB模式用DIB_RGB_COLORSDWORDdwRop//像素操作码,简单复制用SRCCOPY);由于OpenCV中的位图结构中的像素数据与DIB中的像素具有相同的存储结构,

3、见表1中的像素部分。所以,只要为它构造一个DIB的位图信息就可以调用API函数StretchDIBits实现它的显示了。表1DIB位图参数与IplImage结构参数参数DIB(MFC)IplImage(OpenCV)宽度biWidthwidth高度biHeightheight像素位数biBitCount(1,4,8,16,24,32)=depth*nChannelsdepth(8,16,32,64)通道数---nChannels(1,2,3,4)biBitCount(单通道位图)调色板单元数2二值图像显示为灰阶图像(2,16,256)256色彩色图像显示为

4、真彩色图像位图坐标原点底-左origin(0顶-左,1底-左)像素分量存放方式交叉存取(按像素为单位存放)0交叉存取,1位平面方式对齐方式(行像素数据凑整)4字节对齐4字节对齐或8字节对齐每行字节数(biWidth*biBitCount+31)/32*4widthStep像素字节数((biWidth*biBitCount+31)/32*4)*biHeightimageSize像素存放地址BYTE*pBitschar*imageData感兴趣区域---roi1VC开发网http://www.vckf.net在MFC中使用OpenCV表中正体字母部分表示相同的

5、参数,粗体字母表示参数部分相同时的交集,斜体加下划线表示结构特有的参数。位图的宽度、高度、像素存放首地址、每行字节数、像素总字节数等5个参数在两种结构中相同。像素位数、通道数、坐标原点位置、像素分量存放方式、对齐方式等5个参数在两种结构中部分相同,使用时可以取其交集,表中用粗体字表示。有2个参数是两种位图各自独有的,感兴趣区域为IplImage结构所独有,调色板单元为DIB所独有。从表1中可以看出,除了高精度图像(位深度16,32,64)外,这两种位图结构在图像处理的绝大部分应用中可以通用。从以上比较中也可看出,IplImage结构适用于高精度处理,并且可

6、以限制处理的区域;而DIB适用于Windows图形操作,并且可以存储低位数图像文件,如每像素一位的二值图像与像素8位的索引图像等。另一种实现MFC的方法是采用CvvImage类,它有一个特点,就是其成员函数DrawToHDC可将位图全部经缩放后显示到窗口中。这样,虽然能够察看全图,但当位图与窗口的长宽比不一致时会造成图像失真。而采用DIB实现的显示比例可选择为1:1,图像显示没有经过缩放,显示画面按窗口大小进行裁剪,并可使用滑动条选择显示部位,这比较符合图像采集与处理的使用习惯。二、调用OpenCV函数实现处理使用OpenCV函数处理图像在MFC环境下显示

7、,实现功能为图像平滑、图像缩小与Canny边缘检测。根据《学习OpenCV》一书第2章的3个例子(例2-4,2-5,2-6)改编而成。例2-4与2-5使用例图fruits.jpg,例2-6使用例图lena.jpg。还增加了若干图像处理常用功能,详见下面表2菜单结构列表。视频播放也用OpenCV函数实现,根据《OpenCV教程(基础篇)》中第3章的例3-5改编而成,用的是highgui函数,测试视频文件为globe.avi。例图文件都在image目录下。三、用DirectShow编制的视频采集程序采用DirectShow实现视频采集,其优点是支持高分辨率图

8、像采集,最高分辨率由所用的摄像头决定,如罗技130万像素USB摄像

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。