1、文件读写类--CFileDialog
CFileDialog FileDlg(TRUE, "*.jpg;*.bmp", "*.jpg;*.bmp", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "影像文件()");
if (FileDlg.DoModal() != IDOK)
{
return;
}
CString strImgName = FileDlg.GetPathName(); 获取路径 名字
2、基于对话框程序--“编辑框”对应变量赋值与刷新
void CxxxxxDlg::OnBnClickedButtoncalgauss()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE); //将控件中的数据交换到变量中
UpdateData(FALSE); //将变量中的数据交换到控件中
}
3、OpenCV图像读取函数(opencv的官方文档document)
Mat m_srcimg = imread(strImgName.GetBuffer(), IMREAD_GRAYSCALE);
imshow("src image", m_srcimg);
imread()读取图⽚⽂件,imread函数有两个参数,第⼀个参数是图⽚路径,第⼆个参数表⽰读取图⽚的形式,有三种:
- 1. IMREAD_COLOR:加载彩⾊图⽚,这个是默认参数,可以直接写1。
- 2. IMREAD_GRAYSCALE:以灰度模式加载图⽚,可以直接写0。
- 3. IMREAD_UNCHANGED:包括alpha,可以直接写-1。
测试OpenCV配置成功的代码:
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
void main()
{
Mat image = imread("D:/图片/xx大学/本部大门.jpg", 1);
imshow("xx大学本部大门", image);
waitKey();
return;
}
4、OpenCV中的imread()与Mat
mat src=imread("文件路径",1); //加载为彩色图像,imread()返回的是一个mat.
int width = src.cols;//获取图像宽(矩阵的列数)
int height = src.rows;//获取图像高(矩阵的行数)
int dims = src.dims;//获取图像维度
int channels = src.channels;//获取图像通道数
int depth = src.depth();//获取图像深度
int type = src.type();//获取图像类型
U 表示无符号整型、S 表示有符号整型、F表示浮点数。
创建Mat的格式如下:
Mat src = Mat(1, 1, CV_8UC3);
保存Mat代码:
Mat img = Mat(200, 200, CV_8UC3);
img.setTo(Scalr(127, 127, 127));
imwrite("要保存的图像路径", img);