您的位置:首页 > 运维架构

OpenCV--图像的加载、显示、修改与保存

2017-11-27 20:25 579 查看

图像的加载与显示

cv:imread:图像的读取
imread有两个参数
第一个参数:读取图像的名称(包括路径)
第二个参数:表示加载图像的类型,
有三个值:
①IMREAD_UNCHANGED(<0)表示加载原图,不做任何修改
②IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来
③IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来


cv::namedWindow与cv::imshow:图像的显示
cv::namedWindow:创建一个窗口用于显示图像,它是由Opencv自动创建与销毁
常见用法:namedWindow("windowTitle",WINDOW_AUTOSIZE);
WINDOW_AUTOSIZE表示我们不能修改窗体的大小
WINDOW_NORMAL,跟QT集成使用,可以修改大小

cv::imshow:将图像显示在窗体上,两个参数
第一个参数:指定显示窗体的名称
第二个参数:Mat对象


实例:

void demo1(){
Mat m1 = imread("lena.jpg",IMREAD_UNCHANGED);
if (m1.empty())
{
cout<<"图像读取失败"<<endl;
return;
}
namedWindow("IMREAD_UNCHANGED",WINDOW_AUTOSIZE);
imshow("IMREAD_UNCHANGED",m1);

Mat m2 = imread("lena.jpg",IMREAD_GRAYSCALE);
if (m2.empty())
{
cout<<"图像读取失败"<<endl;
return;
}
namedWindow("IMREAD_GRAYSCALE",WINDOW_AUTOSIZE);
imshow("IMREAD_GRAYSCALE",m2);

Mat m3 = imread("lena.jpg",IMREAD_COLOR);
if (m3.empty())
{
cout<<"图像读取失败"<<endl;
return;
}
namedWindow("IMREAD_COLOR",WINDOW_AUTOSIZE);
imshow("IMREAD_COLOR",m3);

cvWaitKey();//设置暂停,可以指定时间ms
}




图像的修改

cv:cvtColor-->修改图像,将图像从一个彩色空间转换至另一个彩色空间。有三个参数
第一个参数:源图像
第二个参数:目标图像
第三个参数:源图像和目标图像的色彩空间,如:COLOR_BGR2GRAY,COLOR_BGR2HLS


实例:

void demo2(){
Mat src = imread("lena.jpg");
if(src.empty()){
cout << "图像加载失败" << endl;
return;
}
Mat dest;
namedWindow("COLOR_BGR2GRAY",WINDOW_AUTOSIZE);
cvtColor(src,dest,COLOR_BGR2GRAY);
imshow("COLOR_BGR2GRAY",dest);

namedWindow("COLOR_BGR2HLS",WINDOW_AUTOSIZE);
cvtColor(src,dest,COLOR_BGR2HLS);
imshow("COLOR_BGR2HLS",dest);
cvWaitKey();
}




图像的保存

cv:imwrite:图像的保存
只有8位、16位的png,tiff,jpg文件格式而且是单通道或三通道的图片才可以通过这种方式保存
png格式的文件可以通过透明通道进行保存
可以指定压缩参数


实例:

void demo3(){
Mat src = imread("lena.jpg");
if(src.empty()){
cout << "图像加载失败" << endl;
return;
}
Mat dest;
cvtColor(src,dest,COLOR_BGR2GRAY);
imwrite("d://out.jpg",dest);

//设置压缩参数
/*
For JPEG, it can be a quality ( CV_IMWRITE_JPEG_QUALITY ) from 0 to 100 (the higher is the better). Default value is 95.
For PNG, it can be the compression level ( CV_IMWRITE_PNG_COMPRESSION ) from 0 to 9. A higher value means a smaller size and longer compression time. Default value is 3.
For PPM, PGM, or PBM, it can be a binary format flag ( CV_IMWRITE_PXM_BINARY ), 0 or 1. Default value is 1.
*/
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_JPEG_QUALITY);
compression_params.push_back(10);
imwrite("d://out2.jpg",dest,compression_params);

cvWaitKey();
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv