模式识别第二课 建立MFC窗口+插入图片+处理+显示图片
vs2010 + OpenCV2.4.11
上的模式识别第二课,老师建了一个MFC程序,插入图片,处理,显示图片。这只是一种技术,很容易模仿,难学的是如何对图片处理。数字信号处理课程要学好。
1.新建一个工程,MFC应用程序,名字叫 MFC_Demo,demo是样本的意思。选择 基于对话框,然后按完成。
2.在对话框 dialog 中插入两个图片控件Picture Control 和一个按钮 Button。
左边图片控件ID:IDC_Src 右边图片控件ID:IDC_Dst 按钮控件 ID:IDC_Process,名字 process
3.给左边图片控件 IDC_Src 添加消息,点击图片控件,右键->属性->闪电标志->选择 DBLCLK,这里添加左键双击消息。
4.在 OnStnDblclickSrc() 函数里添加下列代码,作用是打开文件,选取图片。
void CMFC_DemoDlg::OnStnDblclickSrc()
{// TODO: 在此添加控件通知处理程序代码TCHAR szFilter[] = _T("图像文件(*.bmp,*.jpg)|*.bmp;*.jpg|视频文件(*.avi)|*.avi|所有文件(*.*)|*.*||");CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter, NULL);if(IDOK == dlgFile.DoModal()){CString strOpenFilePath = dlgFile.GetPathName(); //将CString类型的文件名转化为char*类型int n = strOpenFilePath.GetLength();int len = WideCharToMultiByte(CP_ACP,0,strOpenFilePath,strOpenFilePath.GetLength(),NULL,0,NULL,NULL);char * pFileName = new char[len+1]; //以字节为单位WideCharToMultiByte(CP_ACP,0,strOpenFilePath,strOpenFilePath.GetLength() + 1 ,pFileName,len + 1 ,NULL,NULL);pFileName[len] = '\0'; //多字节字符以'\0'结束matInput = imread(pFileName);IplImage* iplImage = &(IplImage)matInput;CvvImage imgSrc;imgSrc.CopyOf(iplImage,1);imgSrc.DrawToHDC(m_pDCSrc->m_hDC, &m_rectSrc);}
}
5.在 MFC_DemoDlg.h 头文件中添加 包含头文件,如下,CvvImage 的函数文件和头文件需要提前添加。
#include<core\core.hpp>
#include<highgui\highgui.hpp>
#include"CvvImage.h"using namespace cv;
6.class CMFC_DemoDlg : public CDialogEx 在类中添加变量
public:CWnd* m_pWndSrc;CWnd* m_pWndDst;CDC* m_pDCSrc;CDC* m_pDCDst;CRect m_rectSrc;CRect m_rectDst;Mat matInput;Mat matOutput;
7.BOOL CMFC_DemoDlg::OnInitDialog()
在消息处理初始化函数中对变量初始化。
m_pWndSrc = GetDlgItem(IDC_SRC);m_pWndDst = GetDlgItem(IDC_DST);m_pDCSrc = m_pWndSrc->GetDC();m_pDCDst = m_pWndDst->GetDC();m_pWndSrc->GetClientRect(&m_rectSrc);m_pWndDst->GetClientRect(&m_rectDst);
8.这时候编译链接,编译成功,但是双击图框没有反应,还需要打开图框允许通知,图框->右键->属性->Notify->True。这时候就可以编译运行成功。可以选择一个所有格式的图片显示在图框中。
9.双击按钮 process,在函数中加入下列代码,编译运行,选择一张图片,process,图片变灰了。
void CMFC_DemoDlg::OnBnClickedProcess()
{// TODO: 在此添加控件通知处理程序代码cvtColor(matInput,matOutput,CV_BGR2GRAY);IplImage* iplImage = &(IplImage)matOutput;CvvImage imgDst;imgDst.CopyOf(iplImage,1);imgDst.DrawToHDC(m_pDCDst->m_hDC, &m_rectDst);
}
总结:代码不是很完善,图框的大小是限定的,不能随插入图片的大小而改变。
代码都不是很理解,只是抄了老师的代码。
模式识别第二课 建立MFC窗口+插入图片+处理+显示图片相关推荐
- 使用Python调用opencv学习(-)打开图片,显示图片
使用Python调用opencv学习(-)打开图片,显示图片 第一步是读取图片是用cv2.imread 第一个参数是图片的路径可以是绝对路径也可以是相对路径.第二个参数代表读取图片的格式 cv2.IM ...
- 织梦网站上传服务器不显示图片,织梦网站图片不显示图片
织梦网站图片不显示图片 内容精选 换一换 在"文章列表"插件中,检查"设置 > 列表数目"的"显示文章条数"和"显示分页&q ...
- html背景图片只显示一张图片,img只显示图片一部分 或 css设置背景图片只显示图片指定区域(示例代码)...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- 如何访问本地服务器图片不显示,如何访问云服务器的图片不显示图片
如何访问云服务器的图片不显示图片 内容精选 换一换 鲲鹏CentOS 7和中标麒麟NKASV 7云服务器安装图形化界面后,远程连接云服务器鼠标不可用.X86云服务器使用了cirrus虚拟显卡,鲲鹏云服 ...
- php访问服务器上图片不显示不出来,php显示云服务器上图片不显示图片
php显示云服务器上图片不显示图片 内容精选 换一换 初次使用AppCube,您可以通过阅读本入门,初步了解AppCube.建议您跟随文档,创建实例应用,在实操的过程中逐步学习AppCube.AppC ...
- php验证是否图片,php验证码图片不显示图片怎么办
php验证码图片不显示图片的解决办法:首先检查php是否安装gd扩展:然后在php目录下找到php.ini文件:最后将文件编码方式改为utf-8无DOM格式,并在header前清除缓存即可. PHP图 ...
- html表格中加入内容吗,制作html帖第二课:在表格中添加文字和图片
3.在html格式下插入图片代码及图片地址 帖图基本格式如下: 称图形标记,主要用来插入图形标记. 方法:在表格中输入"内容"两字,点开html将你编辑好的代码及图片地址粘贴上, ...
最新文章
- Web 服务编程,REST 与 SOAP
- rxjs of操作符里subscribeToArray的实现原理示意图及分析
- WireShark抓DNS请求和回复数据报的分析
- mysql跳过安全_Navicat连接MySQL数据库
- 吴恩达深度学习2.1练习_Improving Deep Neural Networks_Regularization
- Swift 2.2 最基本的多线程
- java按年月季度统计折线图_拆线图按年、按月,按天统计,前端传时间只要起始时间与结束时间...
- LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告
- linux拷贝安装包到另一个目录下,把windows下的压缩包放到Linux目录下去
- zemax设计35mm镜头_镜头光学设计宝典结合Zemax实例分析(中文版).pdf
- C语言知识点--define的替换列表为空是怎么回事?
- IDEA 配置 maven
- 什么是back annotation
- VMWare虚拟机 网络连接模式介绍
- python获取小图在大图中的坐标和相似度
- python入门笔记——内置函数作业
- 金仓数据库KingbaseES函数的管理
- python 根据excel绘图
- hbuilder无法检测到安卓手机3.4.15
- 变电所运维云平台系统的研究与应用
热门文章
- rabbitmq 简易RPC调用示例
- 计算机系统的组成一般不包括,计算机系统的基本组成,一般应包括哪些
- 无显卡本地运行katago围棋程序
- 中国大茴香行业利润及销量增长情况报告(新版)2021-2026年
- 程序员职业发展路线图(完整版+珍藏版)
- 自然语言处理-中文分词相关算法(MM、RMM、BMM、HMM)
- 大剖析:中国数万亿家装市场,为何出不了一个30亿美金的Houzz?
- 免费申请 HTTPS 证书,开启全站 HTTPS
- [ACNOI2021]爱乐之城
- php跳水比赛,2018年“迎春杯”海南省青少年健身游泳比赛成功举行 前奥运跳水冠军许艳梅见证海南游泳健儿风采...