怎么在mfc中添加cvvimage.h和cvvimage.cpp

怎么在mfc中添加cvvimage.h和cvvimage.cpp,第1张

首先在自己的项目中添加CvvImage.h和CvvImage.cpp。在要使用的类中包含其头文件#include "CvvImage",接着添加如下消息处理函数:

void CPersonWidthDlg::showimg(void)

{

Mat img = imread(".\\lena.jpg")

IplImage iplImg = IplImage(img)

//Iplimage * iplImg = &img.operator IplImage()

CDC* pDC = GetDlgItem(IDC_FRAME)->GetDC()

HDC hdc = pDC->GetSafeHdc()

RECT rect

GetDlgItem(IDC_FRAME)->GetClientRect(&rect)

CvvImage cvvImg

cvvImg.CopyOf(&iplImg)

cvvImg.DrawToHDC(hdc,&rect)

ReleaseDC(pDC) 

}

MFC 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

HG_IS_IMAGE 是个宏定义

#define HG_IS_IMAGE(img) \

((img) != 0 &&((const IplImage*)(img))->nSize == sizeof(IplImage) &&\

((IplImage*)img)->imageData != 0)

你定义的图像是4通道图像 cvCreateImage(m_size,IPL_DEPTH_32F,4)

cimg.Copyof(m_DstImg,3)最后一个参数是通道数,你把他改成m_DstImg->nChannels

然后试试

好在我自己在网上找到了,希望对大家有帮助。

CvvImage类以及在MFC中显示IplImage图像的方法(2010-01-07 10:53:41) 转载标签: colormfcfrom通道杂谈

平常使用Open CV时总是跳出一个个窗口,很难将项目进行系统集成,特别是在MFC等Windows环境中加载显示Open CV中的IplImage图像;

使用Open CVhighgui.h 中定义的CvvImage类,可以很好的实现Open CV和Windows MFC显示接口;先介绍一下CvvImage类:

由于CvvImage是在 highgui.h 头文件中声明的,因此如果您的程序中需要使用,则必须在开头包含此头文件

#include <highgui.h>

CvvImage对应CImage宏:

#define CImage CvvImage

注意事项:

由于CImage太常见, 很容易造成冲突, 因此建议不要使用该宏(可以直接删去此宏定义)。

警告:参数中含有HDC(注:一种windows系统下定义的变量类型,用来描述设备描述表的句柄类型)类型的并不能保证移植到其他平台,例如Show/DrawToHDC等。

后文中的DC,即device context(设备环境),一般可以理解为windows *** 作系统为方便绘图而抽象的”绘图表面“,“往窗口上绘图”,有时也被说成是“往窗口DC上绘图”。

CvvImage::Create

bool CvvImage::Create(int w, int h, int bpp, int origin)

创建一个图像。 成功返回true, 失败返回false。

w 图像宽

h 图像高

bpp 每个像素的bit数, 值等于像素深度乘以通道数

origin 0 - 顶—左结构, 1 - 底—左结构 (Windows bitmaps 风格)

例:// 创建一个400行600列的, IPL_DEPTH_8U类型的3通道图像, 顶—左结构

CvvImage img

bool flag = img.Create(600, 400, IPL_DEPTH_8U*3, 0)

if(!flag) printf("创建图像失败!")

CvvImage::CopyOf

void CvvImage::CopyOf(CvvImage&img, int desired_color)

void CvvImage::CopyOf(IplImage* img, int desired_color)

从img复制图像到当前的对象中。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11822431.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存