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

宁波网站建设团队贺州网站建

宁波网站建设团队,贺州网站建,网站改版会影响排名吗,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://www.dtcms.com/wzjs/547886.html

相关文章:

  • 流行网站开发框架注册上海公司
  • xampp配置多网站建设公司logo图片大全
  • 官方网站建设流程及费用怎样做旅游公司的网站
  • 广州做手机网站信息免备案做网站可以盈利吗
  • asp 网站图标制作wordpress页面模板下载地址
  • 老网站绑定新网站如何做网站管理员密码忘记
  • 做橡胶的网站公司网站找哪家
  • 网站建站推广是啥意思正邦做网站多少钱
  • 重庆网上制作网站重庆技术网站建设
  • 免费企业网站模板psd东营网站设计多少钱
  • 学seo建网站免费pc网站建设
  • 试题wordpress的特点网站改名 seo
  • wordpress 主题函数兰州网站优化seo
  • 怎样做网站推广网站开发确认函
  • 在线做头像的网站手机网站排名怎么做
  • 怎么在百度上做公司网站免费设计软件下载
  • 佛山seo网站推广网站策划方案目标
  • 如何网站托管手机网站免费建设排行
  • 做采集网站的方法做app网站公司名称
  • 广东中山网站建设什么网络游戏比较好玩
  • 杭州网站制作建设php网站代做是什么意思
  • 怎样做网站呢wordpress插件收录
  • 网站开发实训报告金华企业网站建设公司
  • 专做奢侈品品牌的网站甘肃网站建设专家
  • wordpress 汉化模版枫树seo
  • 网站搭建本地环境线上推广计划
  • 关于网站建设的建议征集公司网站开发的工作内容
  • 如何注销网站备案号农产品网站建设策划书范文
  • 商丘市有没有做网站百度收录网站但首页快照不更新
  • 保定市建设施工许可证查询网站柯桥建设局网站首页