关于MFC中显示OpenCV Mat矩阵中的图像(一种新的解决方法)
来源:互联网 发布:企业网络整改方案 编辑:程序博客网 时间:2024/05/16 01:49
OpenCV的C++类Mat读取的图像在MFC中如何显示目前网络上资料较少,大部分的博文作者都在使用C API。界面上毕竟用C还是没有C++方便,尤其是像我这样的菜鸟。。。。,几经周折,我终于把图片显示在了MFC的视图上,正洋洋得意呢。。。,当我打开下面这幅图像的时候就懵了。
据说,BMP的行的宽度所占字节数必须是四的倍数,
还好后来我在网上搜到了一个在C上实现缩放的代码,它在完成缩放的同时也把图像校正过来了。我顺着这个思路在后面的应用中也成功了,前几天我无意打开一张Windows上的截图,却发现问题还在。
今天得空回来修改这一份代码的时候 ,我发现Mat的at函数结合VecNb这个数据结构的确很好用,只要知道图像的通道数目再根据通道的数目设置N的值,这样就可以完整显示读入的图像。具体来说:
1 图像要按原来的形式读入,即imread 的flag要设置为-1 ;
2 创建的缓存矩阵要与原矩阵的type一样即:CV_(M)U/SC(N),M和N要一致;
3 at<Vec(N)b>中N要和上面的N一致;
Mat tmp(dstHeight,dstWidth,CV_8UC3);
for(i = 0; i<dstHeight; i++)
{
for(j = 0; j<dstWidth; j++)
{
/*srcX = int(i*(float)m_cvImg.cols/(float)dstWidth);
srcY = int(j*(float)m_cvImg.rows/(float)dstHeight);
src_s = cvGet2D(&m_cvImg,srcX,srcY);
dst_s = cvGet2D(&tmp,i,j);
dst_s.val[0] = src_s.val[0];
dst_s.val[1] = src_s.val[1];
dst_s.val[2] = src_s.val[2];
cvSet2D(&tmp,i,j,dst_s);*/
srcX = int(j*(float)m_cvImg.cols/(float)dstWidth);
srcY = int(i*(float)m_cvImg.rows/(float)dstHeight);
tmp.at<cv::Vec3b>(i,j)[0] = m_cvImg.at<cv::Vec3b>(srcY,srcX)[0];
tmp.at<cv::Vec3b>(i,j)[1] = m_cvImg.at<cv::Vec3b>(srcY,srcX)[1];
tmp.at<cv::Vec3b>(i,j)[2] = m_cvImg.at<cv::Vec3b>(srcY,srcX)[2];
}/*for_j*/
}/*for_i*/
- 关于MFC中显示OpenCV Mat矩阵中的图像(一种新的解决方法)
- MFC:CImage显示OpenCV:Mat矩阵图像
- MFC:CImage显示OpenCV:Mat矩阵图像
- MFC:CImage显示OpenCV:Mat矩阵图像
- MFC:CImage显示OpenCV:Mat矩阵图像
- MFC:CImage显示OpenCV:Mat矩阵图像
- 在MFC中显示OpenCV的Mat图像矩阵 ShowMatImgToWnd(GetDlgItem(IDC_ShowImg) , matFrame);
- 在MFC中如何显示OpenCV的图像Mat
- 利用GDI+在MFC中显示OpenCV中的Mat图像的关键点
- MFC+opencv 显示mat图像
- MFC/C# 中显示 OpenCV 的 Mat
- MFC/C# 中显示 OpenCV 的 Mat
- 彻底解决显示Opencv中Mat图像到Mfc窗口问题
- CImage显示OpenCV:Mat矩阵图像
- 在MFC中显示OpenCV的Mat格式图像和打开摄像头
- OPENCV Mat图像在MFC PictureControl显示
- 将OpenCV:Mat矩阵图像转换为MFC:CImage图像
- OpenCV中Mat、IplImage格式的图片,显示到MFC中的picture控件上
- javascript json的使用(以及中文乱码的解决乱码)
- joj 2431: Shift and Increment
- 进程上下文
- 2534: The Hero Rescued The Princess
- Android程序对不同手机屏幕分辨率自适应的总结
- 关于MFC中显示OpenCV Mat矩阵中的图像(一种新的解决方法)
- Android中尺寸单位杂谈
- 第二章 --- 第五节
- c#使用StreamWriter将DataTable保存到Excel
- java connects weblogic jms
- 博客技术网址
- PLSQL Developer + Oracle客户端简易安装方法
- 自定义 RadioButton 选中和未选中时的图片
- oracle 跳出循环方法