#include <opencv2\opencv.hpp>
#include <iostream>
using namespace cv;
int main(int argc, char** argv)
{
/*
加载图像(用cv::imread)
imread功能是加载图像文件成为一个Mat对象,
其中第一个参数表示图像文件名称;
第二个参数是表示加载的图像类型,支持常见的三个参数值:
IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变
IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来
默认值:IMREAD_COLOR(>0)表示把原图作为RGBA的图像加载进来
注:Opencv支持JPG, PNG, TIFF等常见格式图像文件加载
*/
Mat src = imread("D:/A_Graduation/picture/Fusion/source17_1.tif");
if (src.empty()) //如果图像没加载进来
{
printf("Could not load image...\n");
return -1;
}
/*
显示图像(cv::namedWindos 与 cv::imshow)
namedWindos功能是创建一个Opencv窗口,它是由Opencv自动创建与释放,你无须取消毁它
WINDOW_AUTOSIZE会自动根据图像大小显示窗口大小,不能人为改变窗口大小
WINDOW_NORMAL跟QT集成的时候会使用,允许修改窗口大小
imshow根据窗口名称显示图像到指定窗口去,第一个参数是窗口名称,第二个参数是Mat对象,也就是我们图像的对象
*/
namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);
imshow("test opencv setup", src); //显示原图像
/*
修改图像(cv::cvtColor)
cvtColor的功能是把图像从一个彩色空间转换到另外一个彩色空间,
有三个参数:
第一个参数表示源图像;
第二个参数表示色彩空间的转换之后的图像;
第三个参数表示源和目标色彩空间即从哪个色彩空间转换到哪个色彩空间去,如:COLOR_BGR2HLS,COLOR_BGR2GRAY等
cvtColor(image,gray_image,COLOR_BGR2GRY);
*/
//再创建一个窗口,显示修改之后的图像,从RGB图像转换成一张HLS图像
namedWindow("output window", CV_WINDOW_AUTOSIZE);
Mat output_image;
cvtColor(src, output_image, CV_BGR2HLS);
imshow("output window", output_image);//output_image这个图像显示在output window这个窗口上
/*
保存图像(cv::imwrite)
保存文件到指定的目录路径
只有8位,16位的PNG,JPG,Tiff文件格式而且是单通道或者三通道的BGR(顺序)的图像才可以通过这种方式保存
保存PNG格式的时候可以保存透明通信的图片
可以指定压缩参数
第一个参数指输入的文件名,你保存到哪个路径,第二个参数指待转换的图像是哪个图
*/
imwrite("D:/A_Graduation/picture/Fusion/source17_1change.tif", output_image);
waitKey(0); //等待用户键盘任意键结束程序
return 0;
}
注:从灰度图像转到灰度图像,cvtColor会报错
(01) 加载、修改、保存图像
最新推荐文章于 2022-03-06 09:50:07 发布