OpenCV学习笔记2-读取图片
来源:互联网 发布:windows 打开dos 编辑:程序博客网 时间:2024/06/05 00:24
OPENCV笔记都是记录MFC下做图像处理的项目时,遇到的问题,留此博客以备记录。
本文主要是需要打开一个对话框,手动选取图片,显示在MFC的picture control上。关于在程序中使用绝对路径读取图片的代码,这里直接给出,不做过多的说明了。
OpenCV使用绝对路径读取图片:
void CMyDlg::OnBnClickedBtnloadimg()
{
// TODO: 在此添加控件通知处理程序代码
IplImage *SrcImg;
SrcImg = cvLoadImage("c:\\users\\administrator\\desktop\\1.jpg");//使用绝对路径读取图片
//SrcImg = cvLoadImage(".\\1.jpg"); //表示从当前文件夹下读取
if (!SrcImg->imageData)
{
AfxMessageBox("cvLoadImage() err");//使用多字节字符集
//AfxMessageBox(_T("cvLoadImage() err")); //使用Unicode字符集
}
if (SrcImg->nChannels != 1)//如果不是灰度图,转换成灰度图
{
IplImage *GrayImg = cvCreateImage(cvGetSize(SrcImg), IPL_DEPTH_8U, 1);
cvCvtColor(SrcImg, GrayImg, CV_BGR2GRAY);
}
else
{
cvReleaseImage(&GrayImg);
GrayImg = SrcImg;
}
/*
picture control显示图片,picture control的ID为IDC_ShowSrcImg
*/
//获取IDC_STATIC控件的设备环境,以便对其进行图像操作
CDC* pDCSrc = GetDlgItem(IDC_ShowSrcImg)->GetDC();//获得显示空间的DC,MFC类一般都是以C开头
HDC hDCSrc = pDCSrc->GetSafeHdc();//得到hDC句柄进行绘图操作
CvvImage cimgsrc;
cimgsrc.CopyOf(GrayImg);
//将图像显示到IDC_ShowImgSrc控件上
CRect rectsrc;
GetDlgItem(IDC_ShowSrcImg)->GetClientRect(&rectsrc);
cimgsrc.DrawToHDC(hDCSrc, &rectsrc);
// 释放
ReleaseDC(pDCSrc);
}
选择图片进行显示:
void CMyDlg::OnBnClickedBtnopenimg()
{
// TODO: 在此添加控件通知处理程序代码
IplImage* SrcImg = NULL;
CFileDialog dlg(
TRUE, _T("*.bmp;*.jpg;*.tif"), NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
"image files All Files (*.*) |*.*||", NULL
);// 选项图片的约定;
dlg.m_ofn.lpstrTitle = _T("打开图片");// 打开文件对话框的标题名;(*.bmp; *.jpg) |*.bmp; *.jpg |
if (dlg.DoModal() == IDOK)// 判断是否获得图片;
{
if (dlg.GetFileExt() != "bmp" && dlg.GetFileExt() != "jpg"&&dlg.GetFileExt() != "tif")
{
AfxMessageBox(_T("请选择正确的图片格式!"), MB_OK);
return;
}
CString mPath = dlg.GetPathName();// 获取图片路径;
SrcImg = cvLoadImage(mPath);//读取图片、缓存到一个局部变量ipl中;
if (!SrcImg)// 判断是否成功载入图片;
return;
}
/*
picture control显示图片,picture control的ID为IDC_ShowSrcImg
*/
//获取IDC_STATIC控件的设备环境,以便对其进行图像操作
CDC* pDCSrc = GetDlgItem(IDC_ShowSrcImg)->GetDC();//获得显示空间的DC,MFC类一般都是以C开头
HDC hDCSrc = pDCSrc->GetSafeHdc();//得到hDC句柄进行绘图操作
CvvImage cimgsrc;
cimgsrc.CopyOf(SrcImg);
//将图像显示到IDC_ShowImgSrc控件上
CRect rectsrc;
GetDlgItem(IDC_ShowSrcImg)->GetClientRect(&rectsrc);
cimgsrc.DrawToHDC(hDCSrc, &rectsrc);
// 释放
ReleaseDC(pDCSrc);
}
- OpenCV学习笔记2-读取图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记(01) :读取图片并显示
- OpenCV学习笔记(一):读取、显示、保存图片
- OpenCV学习笔记-读取摄像头
- OpenCV学习笔记-读取视频文件
- Opencv学习笔记----读取视频
- opencv学习笔记(1)——读取路径显示图片和保存jpg图片
- 【opencv学习笔记】1、opencv缩放图片
- 【OpenCV学习笔记】【编程实例】一(VS2010/MFC+OPenCV2.4.7读取图片和摄像头)
- opencv学习笔记(2)视频文件的读取与保存
- opencv学习笔记 读取avi视频
- OpenCV学习笔记三:视频读取
- OpenCV 学习笔记 1、图像读取
- opencv读取图片读取不成功
- Oracle 服务器 客户端 US7ASCII、 UTF8字符编码问题
- 小明的存钱计划
- FPGA 查找表和寄存器等详解
- Linux解包、打包
- cxf3.1.4整合spring4.1.7 demo-xs
- OpenCV学习笔记2-读取图片
- 《the django book》part2 django的安装使用
- 通过MySQL自动同步刷新Redis
- 系统延时及定时任务
- 赫夫曼树编码解码实例(C)
- JDBC实现修改和删除操作
- 1.3 输出第二个整数
- Stars poj 2352 treap
- BZOJ3612 [Heoi2014]平衡 递推 整数划分