Mat是opencv中的图像格式,如果想要图像在MFC中显示,将Mat格式转为MFC支持的CImage格式是一种较为优秀的解决方案,这篇博客就来介绍在MFC中显示Mat图像的方法。虽然原理相同,但博主还是要介绍两种方式:一种是通过子类化显示控件的方式进行显示,第二种是在父窗口中调用。如果你做的工程比较庞大,博主建议使用子类化控件的方法,当然,如果你是小工程,博主也依然建议你使用子类化的方法,这样不仅使代码结构简单封装良好,而且方便了控件的拓展。

        下面直接给出子类化的代码,里面注释已经很详细,直接读代码,所以无需多言。

        如果你没有采用子类化的方法,代码差别极小,只是GetWindowRect的时候需要使用控件对象的指针,下面给出的是子类化的成员函数:

        使用你的新类来在MFC中进行显示,在对话框的相应函数中使用如下代码,其中m_pic是你新控件类的实例:

如果不是采用子类化的方法,如果放在OnPaint中进行绘制,代码是几乎一样的,可能需要修改Rect区域,然后就是如果出现bug,可能需要注释掉Invalid(false); 就这么多。

        OK, See You Next Chapter!

发表评论

电子邮件地址不会被公开。 必填项已用*标注