当前位置: 首页 > wzjs >正文

宁波网站建设团队佛山vi设计

宁波网站建设团队,佛山vi设计,wordpress的评论插件,今天的新闻就是明天的历史MFC (VS2019)+ OpenCV,显示图片的3种方法 1 方法介绍2 方法一:嵌套OpenCV窗口显示图片2.1 建立供工程 添加控件2.2 引用头文件2.3 找到OnInitDialog()函数,在其中添加如下代码2.4 在button触发函数中加入代码(就是你双击button进入的函数)2.5 注意事项3 方法二: 转换图…

MFC (VS2019)+ OpenCV,显示图片的3种方法

  • 1 方法介绍
  • 2 方法一:嵌套OpenCV窗口显示图片
    • 2.1 建立供工程 添加控件
    • 2.2 引用头文件
    • 2.3 找到OnInitDialog()函数,在其中添加如下代码
    • 2.4 在button触发函数中加入代码(就是你双击button进入的函数)
    • 2.5 注意事项
  • 3 方法二: 转换图片格式
    • 3.1 MatToCImage格式转换 定义
    • 3.2 OnPaint() 添加代码 画出图像
  • 4 方法三: OpenCV图片保存后,再用FMC读取显示
    • 4.1 添加代码
    • 4.2 为什么要先保存在读取呢?

1 方法介绍

1、嵌套。 直接将OpenCV窗口嵌套到MFC的Pictrue Control控件中。此方法既能直接显示图片,也可直接使用OpenCV的鼠标按键事件,但对于鼠标滚轮事件只能使用MFC本地的滚轮函数。

2、转换。 将OpenCV读取或处理的图片转换格式,使之成为MFC的Pictrue Control控件可显示的图片格式。此方法每刷新一次图片便需要转换格式一次,比较麻烦,且只能使用MFC的鼠标事件。

3、保存。 将OpenCV读取或处理的图片保存为本地图片,然后用MFC读取图片的方法读取并显示。此方法是笨方法,在特定情况下使用,保存和读取图片比较耗时,但无需转换格式,同样只能使用MFC的鼠标事件。

2 方法一:嵌套OpenCV窗口显示图片

嵌套。直接将OpenCV窗口嵌套到MFC的Pictrue Control控件中。此方法既能直接显示图片,也可直接使用OpenCV的鼠标按键事件,但对于鼠标滚轮事件只能使用MFC本地的滚轮函数。

2.1 建立供工程 添加控件

新建工程,命名为 showRealVideo,创建好之后,自动生成以下文件
在这里插入图片描述

打开对话框后,
在工具箱选择picture control控件,并拖到对话框内,(右键修改属性),修改ID为IDC_PICTURE_STATIC
添加一个Button按钮,修改ID为IDC_PICTURE_BUTTON,描述文字为 “显示图像”

在这里插入图片描述

在这里插入图片描述

双击button (“显示图像”)按钮,之后可以进入****Dlg.cpp,在里面进行如下修改代码
在这里插入图片描述

在这里插入图片描述

编写代码,只需修改MFCApplication1Dlg.cpp文件。

具体修改步骤如下:

2.2 引用头文件

在showRealVideoDlg.cpp中 添加opencv头文件
在这里插入图片描述

#include <opencv2/opencv.hpp>
//cvGetWindowHandle("ImageShow");//嵌套opencv窗口,需要使用下面头文件
#include<opencv2/highgui/highgui_c.h>

2.3 找到OnInitDialog()函数,在其中添加如下代码

在这里插入图片描述

// TODO: 在此添加额外的初始化代码cv::namedWindow("ImageShow");//创建OpenCV窗口HWND  hWnd = (HWND)cvGetWindowHandle("ImageShow");//嵌套opencv窗口HWND hParent = ::GetParent(hWnd);::SetParent(hWnd,GetDlgItem(IDC_PICTURE_STATIC)->m_hWnd);::ShowWindow(hParent,SW_HIDE);

2.4 在button触发函数中加入代码(就是你双击button进入的函数)

在这里插入图片描述

void CshowRealVideoDlg::OnBnClickedPictureButton()
{// TODO: 在此添加控件通知处理程序代码cv::Mat img = cv::imread("D:\\Projects\\test_Images\\9.jpg");CRect rect;CWnd* pWnd = GetDlgItem(IDC_PICTURE_STATIC);//获取picture control控件pWnd->GetClientRect(&rect);//控制图片的大小cv::resize(img, img, cv::Size(rect.Width(), rect.Height()));//将图片resize,适用窗口尺寸imshow("ImageShow", img);}

在这里插入图片描述
在这里插入图片描述

2.5 注意事项

如果图片没有resize,那么图片将以原尺寸显示,不会自适应窗口大小;

超出窗口以外的尺寸,就不会显示。

void CshowRealVideoDlg::OnBnClickedPictureButton()
{// TODO: 在此添加控件通知处理程序代码cv::Mat img = cv::imread("D:\\Projects\\test_Images\\9.jpg");CWnd* pWnd = GetDlgItem(IDC_PICTURE_STATIC);//获取picture control控件imshow("ImageShow",img);
}

在这里插入图片描述

也可以将代码全部写在Button按钮函数中,
即将OnInitDialog()函数中自己添加的代码,剪切到OnBnClickedPictureButton()函数里。
在这里插入图片描述

3 方法二: 转换图片格式

转换。 将OpenCV读取或处理的图片转换格式,使之成为MFC的Pictrue Control控件可显示的图片格式。此方法每刷新一次图片便需要转换格式一次,比较麻烦,且只能使用MFC的鼠标事件。

1、新建MFC应用程序、添加Pictrue Control控件(同上)

2、引用头文件

在showRealVideoDlg.cpp中 添加opencv头文件,
并声明函数 void MatToCImage(Mat &mat, CImage &cImage);
在这里插入图片描述

#include <opencv2/opencv.hpp>
	void MatToCImage(cv::Mat& mat, CImage& cImage);

3.1 MatToCImage格式转换 定义

//在CshowRealVideoDlg::.cpp最后添加MatToCImage函数定义


文章转载自:

http://YOLhfirs.qbwtb.cn
http://Fa2DOg2N.qbwtb.cn
http://udYY25wh.qbwtb.cn
http://6721Ems1.qbwtb.cn
http://arpd7aVJ.qbwtb.cn
http://ZlMp0MyI.qbwtb.cn
http://KmfRlcaf.qbwtb.cn
http://txv6WZyO.qbwtb.cn
http://V7xma6I6.qbwtb.cn
http://3oKl1CYu.qbwtb.cn
http://8KY67A8x.qbwtb.cn
http://UthsPJKS.qbwtb.cn
http://h2IyqRB3.qbwtb.cn
http://CktAca5z.qbwtb.cn
http://ljJdjZHD.qbwtb.cn
http://osG7WMtH.qbwtb.cn
http://HXbri4gm.qbwtb.cn
http://EhPdsSNZ.qbwtb.cn
http://6MuyqTRt.qbwtb.cn
http://q6gU1NHz.qbwtb.cn
http://ft1KSyLv.qbwtb.cn
http://RnjoAzst.qbwtb.cn
http://ciKKCjl1.qbwtb.cn
http://g5PusX5q.qbwtb.cn
http://KXwPXV3r.qbwtb.cn
http://4BIgflME.qbwtb.cn
http://ajLhGwPL.qbwtb.cn
http://U3bIYxAi.qbwtb.cn
http://AnzLLQFH.qbwtb.cn
http://hgkkxi0m.qbwtb.cn
http://www.dtcms.com/wzjs/743223.html

相关文章:

  • 老干部局网站建设海淘网站入口
  • 各网站提交入口wordpress美图插件
  • 企业网站制作规划甘肃做网站的公司有哪些
  • 广州做企业网站的公司服务器域名是什么
  • 环保网站建设的目的公司网站制作导航
  • 做知识产权服务的网站排版设计
  • vi设计欣赏网站潍坊网站建设 诸城
  • 广西网站开发同ip网站有什么影响
  • 厦门建站程序wordpress排版工具
  • 莱州教育网站成都有哪些好玩的
  • 企业网站管理系统的运维服务芜湖哪里有做网站的
  • 网站建设需要什么人海口网站建设小强
  • 黄页网站推广服务html5彩票网站模板
  • 专业做外贸网站nginx wordpress 管理
  • 互联网站备案手续重庆新闻天天630
  • 接私活做网站设计深圳做男装什么网站容易找工
  • 陕西省和城乡建设厅网站wordpress带轮播企业站主题
  • 一个公网ip可以做几个网站二手书籍交易网站开发方式
  • 温州网站建设企业为客户网站做产品描述
  • 在您的网站首页添加标签最近三天的科技新闻
  • 网站宣传的方法有哪些公众号做视频网站
  • 跑腿网站建设营销网站的案例分析
  • 网站组织结构图网站服务费怎么做凭证
  • 做微电网的公司网站上海app开发定制
  • 网站开发服务器配置濮阳网站设计公司
  • 手机网站 分享按钮软件工程培训机构学费
  • 营销型 手机网站制作重庆网站开发哪家好
  • 网站买云服务哪家好哪个软件可以制作游戏
  • 哪些公司可以建设网站重庆网站免费优化
  • 画册设计公司网站wordpress浮动条件