VS2010(MFC)+opencv2.4.9
来源:互联网 发布:软件成熟度模型二手 编辑:程序博客网 时间:2024/06/10 06:38
(一)新建项目
菜单中 文件-新建-项目
(二)新建MFC应用程序
(三)基于对话框
选择基于对话框的,只需改下下面的其它,默认即可
(四)opencv的配置如OpenCV 2.4.9 +VS2010 开发环境配置(二)所示
(五)界面设置
打开工具箱,找到button和picture control控件
修改button中的属性和
右击按钮,添加事件处理程序
(六)新建项目
添加OpenCV的CvvImage文件
右击解决资源方案管理器中的头文件,添加,现有项,选择CvvImage.h
同样方法在源文件中添加CvvImage.cpp(七)添加代码
在类视图或解决方案管理器中双击打开openImageDlg.h
添加如下代码
#include "cv.h"#include "highgui.h"
#include "CvvImage.h"
同时在文件中openImageDlg.h类的声明中添加函数DrawPicToHDC()的声明
void DrawPicToHDC(IplImage *img, UINT ID);
(八)添加代码在openImageDlg.cpp文件中添加函数
void CopenImageDlg::DrawPicToHDC(IplImage *img, UINT ID)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf( img ); // 复制图片
cimg.DrawToHDC( hDC, &rect ); // 将图片绘制到显示控件的指定区域内
ReleaseDC( pDC );
}
(九)在新增按钮的响应函数中添加代码为如下
void CopenImage::OnBnClickedOpenImg()
{
// TODO: 在此添加控件通知处理程序代码
IplImage *image=NULL; //原始图像
if(image) cvReleaseImage(&image);
image = cvLoadImage("1.jpg",0); //显示图片
DrawPicToHDC(image, IDC_ShowImage);
}
其中,1.jpg为预先存储到openImage文件夹中,IDC_ShowImage为Picture控件的ID号
编译运行即可。
或者用下面这个:void CopenImage::OnBnClickedOpenImg()
{
// TODO: 在此添加控件通知处理程序代码
// TODO: 在此添加控件通知处理程序代码
CString Open_Filename;
CFileDialog fDlg(TRUE," "," ",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"所有文件(*.*)|*.*|原始图像(*.bmp)|*.bmp||",NULL);
if (fDlg.DoModal() == TRUE)
{
Open_Filename = fDlg.GetFileName();
if(img_bw)//主意用这个的话img_bw必须先定义
cvReleaseImage(&img_bw);
img_bw = cvLoadImage(Open_Filename,1);
if (img_bw==0)
MessageBox("Reading Failed");
else
DrawPicToHDC(img_bw, IDC_ShowImg);
}
输入图像分割阈值方法
(1)添加Edit控件,ID号为IDC_EDIT_TH,应用向导工具MFC ClassWizard给该ID添加int型的成员变量m_Th.通过Edit控件IDC_EDIT_TH,用户可以输入图像分割阈值,程序会将其自动更新到m_Th.vlaue,int,最大最小1,255(2)添加Button按钮,ID号为IDC_THRESHOLD,标题为“阈值分割”,点击它将对业已打开的图片做二值化分割。对该按钮添加消息响应函数OnThreshold(): //---------------------------------------------------------------------------- void CopenImageDlg::OnThreshold() { // TODO: Add your control notification handler code here UpdateData(TRUE); //更新 if (m_cvImage==NULL) //如果为空就提醒MessageBox("NO Source Image Found!","Warning"); else { IplImage* dst=cvCreateImage( cvSize(m_cvImage->width,m_cvImage->height), m_cvImage->depth, m_cvImage->nChannels ); cvThreshold( m_cvImage, dst, m_Th, 255, CV_THRESH_BINARY); DrawPicToHDC(dst, IDC_SHOW_WINDOW);//cvNamedWindow("Threshold"); //设置窗口名称 //cvShowImage("Threshold",dst); //显示图片 //cvWaitKey(0); } } //============================================ </span>
- VS2010(MFC)+opencv2.4.9
- 显示图片,VS2010, MFC, OpenCV2
- VS2010配置opencv2.4.9
- VS2010+Opencv2.4.9+OpenTLD
- vs2010+opencv2.4.9
- vs2010配置opencv2.4.9
- vs2010安装opencv2.4.9
- VS2010+opencv2.4.9安装
- Win7+OpenCV2.4.9+VS2010配置
- VS2010编译配置opencv2.4.9
- VS2010 + Opencv2.4.9配置试用
- Win7+VS2010+OpenCV2.4.9配置
- vs2010+opencv2.4.9配置笔记
- VS2010+OpenCV2.4.9环境配置
- VS2010+Opencv2.4.4+MFC实现人脸检测与识别
- 【OpenCV】openCV2.4.9+VS2010链接库配置
- WIN7x64+VS2010+OpenCV2.4.9配置笔记
- 利用C++在vs2010配置OpenCV2.4.9
- .NET 开发中SQL Anywhere 数据库的使用介绍
- Apache shiro 文章推荐
- Websocket通讯简析
- 图像旋转
- Android中进行https连接的方式
- VS2010(MFC)+opencv2.4.9
- Android开发笔记-最快Android模拟器Genymotion的安装与使用完整教程(多图,慎点)
- 关于C# 耗时操作的时间查看
- 小试牛刀sssssaaaa
- List<KeyValuePair<int, DateTime> 用法
- IE11的F12的功能无法正常使用
- 制药工业4.0 智慧工厂探索
- IOS 宏与常量的使用
- mongodb 2 搭建