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. Android 布局属性大全

    常用属性汇总: android:hint          设置EditText为空时输入的提示信息 android:gravity        对该view内容的限定:靠上 下 左 右 andro ...

  2. android 之WebView

    (一)使用中遇到的问题: 1.解决webview缓存: WebSettings.LOAD_NO_CACHE   或者直接清除缓存 webView.getSettings().setCatchMode( ...

  3. yum -y --downloadonly --downloaddir=/ruiy upggrde;

    事务概要================================================================================================ ...

  4. [Swift通天遁地]四、网络和线程-(14)创建一个Socket服务端

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. [Swift通天遁地]九、拔剑吧-(12)创建Preview-Transition图像预览界面

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. akka设计模式系列-Aggregate模式

    所谓的Aggregate模式,其实就是聚合模式,跟masterWorker模式有点类似,但其出发点不同.masterWorker模式是指master向worker发送命令,worker完成某种业务逻辑 ...

  7. 51nod1446 Kirchhoff矩阵+Gauss消元+容斥+折半DFS

    思路: //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using ...

  8. BZOJ 2592 随机化(伪)

    思路: 放yousiki大爷题解 http://yousiki.net/index.php/archives/82/ 我写的是随机化 既然gzz证了最终答案的上界是O(N)的 那么我们可以n^2枚举所 ...

  9. azkaban-executor启动时出现conf/global.properties (No such file or directory)的问题解决(图文详解)

     问题详情 // :: INFO [FlowRunnerManager] [Azkaban] Cleaning recently finished // :: INFO [FlowRunnerMana ...

  10. RESTful 设计理论

    RESTful 设计: 1.协议通信协议:https 2.域名部署在API专用域名下,除非API很简单(https://www.example.com/api)https://api.example. ...