OpenCV在MFC上的图像读取与通道分离

MFC 里的 OpenCV 用起来其实没那么麻烦,关键是你得先把环境配好,像头文件路径、库文件链接这些,搞清楚了,后面就顺畅多了。

图像读取部分,用cv::imread就行,挺直接的,路径一写就能读,返回的cv::Mat对象你可以想象成一张二维的像素表。想读彩色图,就设参数为 1。

展示图像在 MFC 里有点麻烦,因为 OpenCV 自己的imshow跟 MFC 窗口系统会打架。你可以把cv::Mat转成CBitmap,再配合CDC来画出来。看着复杂,其实就是格式转一下,调用几个函数就行。

分通道也是 OpenCV 的拿手好戏,用cv::split一行代码就能搞定。你会得到三个cv::Mat,分别是蓝、绿、红通道。想单独哪个颜色,就拿哪个通道动手。

如果你想看每个通道的效果,可以用namedWindowimshow开三个窗口分别显示。别忘了waitKey,不然窗口闪一下就没了。

这些功能你都可以塞到 MFC 的OnPaint里去,图像读取、转换、绘制一气呵成。用完 OpenCV 窗口也记得destroyAllWindows清一下。

如果你平时写 MFC,又对图像感兴趣,这套组合还是挺好用的。对色彩理解、图像也有。想进阶的话,可以往滤波、边缘检测这些方向搞。

rar 文件大小:11.25MB