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窗口+插入图片+处理+显示图片相关推荐

  1. 使用Python调用opencv学习(-)打开图片,显示图片

    使用Python调用opencv学习(-)打开图片,显示图片 第一步是读取图片是用cv2.imread 第一个参数是图片的路径可以是绝对路径也可以是相对路径.第二个参数代表读取图片的格式 cv2.IM ...

  2. 织梦网站上传服务器不显示图片,织梦网站图片不显示图片

    织梦网站图片不显示图片 内容精选 换一换 在"文章列表"插件中,检查"设置 > 列表数目"的"显示文章条数"和"显示分页&q ...

  3. html背景图片只显示一张图片,img只显示图片一部分 或 css设置背景图片只显示图片指定区域(示例代码)...

    17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...

  4. html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...

    17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...

  5. css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...

    17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...

  6. 如何访问本地服务器图片不显示,如何访问云服务器的图片不显示图片

    如何访问云服务器的图片不显示图片 内容精选 换一换 鲲鹏CentOS 7和中标麒麟NKASV 7云服务器安装图形化界面后,远程连接云服务器鼠标不可用.X86云服务器使用了cirrus虚拟显卡,鲲鹏云服 ...

  7. php访问服务器上图片不显示不出来,php显示云服务器上图片不显示图片

    php显示云服务器上图片不显示图片 内容精选 换一换 初次使用AppCube,您可以通过阅读本入门,初步了解AppCube.建议您跟随文档,创建实例应用,在实操的过程中逐步学习AppCube.AppC ...

  8. php验证是否图片,php验证码图片不显示图片怎么办

    php验证码图片不显示图片的解决办法:首先检查php是否安装gd扩展:然后在php目录下找到php.ini文件:最后将文件编码方式改为utf-8无DOM格式,并在header前清除缓存即可. PHP图 ...

  9. html表格中加入内容吗,制作html帖第二课:在表格中添加文字和图片

    3.在html格式下插入图片代码及图片地址 帖图基本格式如下: 称图形标记,主要用来插入图形标记. 方法:在表格中输入"内容"两字,点开html将你编辑好的代码及图片地址粘贴上, ...

最新文章

  1. Web 服务编程,REST 与 SOAP
  2. rxjs of操作符里subscribeToArray的实现原理示意图及分析
  3. WireShark抓DNS请求和回复数据报的分析
  4. mysql跳过安全_Navicat连接MySQL数据库
  5. 吴恩达深度学习2.1练习_Improving Deep Neural Networks_Regularization
  6. Swift 2.2 最基本的多线程
  7. java按年月季度统计折线图_拆线图按年、按月,按天统计,前端传时间只要起始时间与结束时间...
  8. LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告
  9. linux拷贝安装包到另一个目录下,把windows下的压缩包放到Linux目录下去
  10. zemax设计35mm镜头_镜头光学设计宝典结合Zemax实例分析(中文版).pdf
  11. C语言知识点--define的替换列表为空是怎么回事?
  12. IDEA 配置 maven
  13. 什么是back annotation
  14. VMWare虚拟机 网络连接模式介绍
  15. python获取小图在大图中的坐标和相似度
  16. python入门笔记——内置函数作业
  17. 金仓数据库KingbaseES函数的管理
  18. python 根据excel绘图
  19. hbuilder无法检测到安卓手机3.4.15
  20. 变电所运维云平台系统的研究与应用

热门文章

  1. rabbitmq 简易RPC调用示例
  2. 计算机系统的组成一般不包括,计算机系统的基本组成,一般应包括哪些
  3. 无显卡本地运行katago围棋程序
  4. 中国大茴香行业利润及销量增长情况报告(新版)2021-2026年
  5. 程序员职业发展路线图(完整版+珍藏版)
  6. 自然语言处理-中文分词相关算法(MM、RMM、BMM、HMM)
  7. 大剖析:中国数万亿家装市场,为何出不了一个30亿美金的Houzz?
  8. 免费申请 HTTPS 证书,开启全站 HTTPS
  9. [ACNOI2021]爱乐之城
  10. php跳水比赛,2018年“迎春杯”海南省青少年健身游泳比赛成功举行 前奥运跳水冠军许艳梅见证海南游泳健儿风采...