This day saw the progress I achieved in creating a fusion of MFC frame and OpenCV code as well as some settled problems. But it is quite late now cause the time for me to prepare the small thesis of the Micro-computer course is not enough, if I spent further time on writing this today. So I'm gonna display those settled problems here and finish this essay the other day, in the future but soon.

[1]Open files(especially images) in dialog-based  MFC programme by selecting files in a new dialog, which is just like what we use to see in Windows system;

[2]Switch the CString vars to char* or string vars;

[3]Show the image in picture control without stretching it even with scaling considered;

[4]Remove the former image while displaying a new one;

[5]How to deal with the error which appears when we try to open a image without choosing anything;

[6]Cope with the error that .png images can not be opened.

unfinished...2017-10-26 21:26:25

===========================================

updated

===========================================

Firstly, we should choose a starting button in a dialog or in a menu. In this programme, menu is chosen. If you have no idea how to create a new dialog by  clicking the menu, turn to this article:#MFC Programming# Using Dialog To Set A Correlate Menu

Since we have got a dialog and a correlate menu, what we need to do create a system dialog which can implement file-reading and file-saving[1].

To start with, we should add a new class of the dialog but the dialog Delimage in this project has had a class when the dialog-based project is created. Therefore, we just need to add a event handler of the submenu Open:

Now we open the Event Handler Wizard:

Any class in the class view is ok but considering convenience and visibility, we choose CCV_OpenImageDlg followed by editing the code:

(Actually followed by Add and Edit because I have already added one)

Then a message response function OnImageopen() is created. It is time that we started writing the code:

 void CCV_OpenImageDlg::OnImageopen()
{
Invalidate(); //Update the dialog including the picture control
CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY,
TEXT("支持的图像文件 (*.jpg;*.png;*.gif;*.bmp;...)|*.jpg;*.png;*.gif;*.bmp|专用Tiff图像文件(*.tiff;*.tif)|*.tiff;*.tif|所有文件(*.*)|*.*||"), NULL);
dlg.m_ofn.nFilterIndex = ;
dlg.m_ofn.hwndOwner = m_hWnd;
dlg.m_ofn.lStructSize = sizeof(OPENFILENAME);
dlg.m_ofn.lpstrTitle = TEXT("打开图像文件...\0");
dlg.m_ofn.nMaxFile = MAX_PATH;
if (dlg.DoModal() == IDOK)
{
m_path = dlg.GetPathName();
UpdateData(FALSE);
}
else
return;
//string s_path(m_path.GetBuffer()); //then there should be #include <string.h>
char *s_path;
s_path = m_path.GetBuffer(m_path.GetLength()); //switch CString to Char *
m_StaticPath.SetWindowTextA(m_path); //write the image path to static text control
Mat Mat_image = imread(s_path, );
IplImage image = Mat_image;
DrawPicToHDC(&image, ID_SHOWLEFT);
}

Display of result:

unfinished...2017-10-28 11:39:59

【DIP Learining MFC &OpenCV】 Experience by 20171026的更多相关文章

  1. 【从零学习openCV】IOS7下的人脸检測

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  2. 【从零学习openCV】IOS7根据人脸检测

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  3. 【从零学习openCV】IOS7人脸识别实战

    前言 接着上篇<IOS7下的人脸检測>,我们顺藤摸瓜的学习怎样在IOS7下用openCV的进行人脸识别,实际上非常easy,因为人脸检測部分已经完毕,剩下的无非调用openCV的方法对採集 ...

  4. 【温故知新C/C++/opencv】取址符&||cv::groupRectangles||引用与值传递

    cv::groupRectangles void groupRectangles(vector<Rect>& rectList, int groupThreshold, doubl ...

  5. 【从零学习openCV】opecv操作像素

    1. 存取像素值 在opencv中能够直接对cv::Mat类型的图像调用at函数读取或赋值某个像素,我们用个简单的案例来说明: //在一张图像上增加椒盐噪声,image为输入图像.n为噪点个数 voi ...

  6. 【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&amp;openCV2.49)

    前言: 开发IOS7已经有一月的时间了.近期在准备推研的事,有点想往CV方向发展.于是開始自学openCV. 关注CSDN已经非常久了.也从非常多博主那学到了非常多知识,于是我也从这周开启自己的blo ...

  7. 【OpenCV】边缘检测:Sobel、拉普拉斯算子

    推荐博文,博客.写得很好,给个赞. Reference Link : http://blog.csdn.net/xiaowei_cqu/article/details/7829481 一阶导数法:梯度 ...

  8. 【C# -- OpenCV】Emgu CV 第一个实例

    原文 [C# -- OpenCV]Emgu CV 第一个实例 Emgu CV下载地址 http://sourceforge.net/projects/emgucv/files/ 找最新的下就行了,傻瓜 ...

  9. 【图像算法OpenCV】几何不变矩--Hu矩

    原文地址  http://blog.csdn.NET/daijucug/article/details/7535370 [图像算法OpenCV]几何不变矩--Hu矩 一 原理 几何矩是由Hu(Visu ...

随机推荐

  1. 【POJ 3784】 Running Median

    [题目链接] http://poj.org/problem?id=3784 [算法] 对顶堆算法 要求动态维护中位数,我们可以将1-M/2(向下取整)小的数放在大根堆中,M/2+1-M小的数放在小根堆 ...

  2. [转]完整教程--idea使用git进行项目管理

    完整教程--idea使用git进行项目管理 第一部分: 安装 1. 下载地址:  https://git-scm.com/download/win; 如果速度慢, 使用 迅雷下载; 2. 点击安装, ...

  3. go多进程

    package main import "fmt" import "time"func loop() { for i := 0; i < 10; i++ ...

  4. robotframework - 运行报错提示 No keyword with name 'Open Browser' found.

    用下面的例子为例: 1.输入以上robot脚本提示: 2.经查阅资料,大部分都使用的是selenium2 版本,无法解该的问题,目前小编使用的是selenium3,不知道selenium是哪个版本的话 ...

  5. JavaScript学习五

    2019-06-02 09:53:42

  6. hadoop一主一从部署(1)

    一.安装前说明 主机IP:192.168.132.128 从机IP:192.168.132.129 1. 所有的安装包我放在了/root/这个目录下,你要根据自己情况去修改,这点必须注意 2. 采用的 ...

  7. 【Leetcode】84. Largest Rectangle in Histogram 85. Maximal Rectangle

    问题描述: 84:直方图最大面积. 85:0,1矩阵最大全1子矩阵面积. 问题分析: 对于84,如果高度递增的话,那么OK没有问题,不断添加到栈里,最后一起算面积(当然,面积等于高度h * disPo ...

  8. SublimeText学习(二)-基本操作

    1.查看已安装的插件 看到已经安装的插件,看到了在上一篇中安装的Emmet 2.设置主题与字体 方法一: 方法二: 工具栏中 [Preference-浏览程序包]找到[Default文件夹]-用Sub ...

  9. Redis 的简单运算

    Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...

  10. 编写第一个HTML5文件

    1.3.1  HTML文件的编写方法 编写HTML文件主要有如下3种方法: 手工直接编写 由于HTML语言编写的文件是标准的ASCII文本文件,所以我们可以使用任何的文本编辑器来打开并编写HTML文件 ...