跟我一起学opencv 第一课之图像加载,修改,保存

时间:2021-09-27 00:16:05

使用opencv前记得引入库和头文件:

#include<opencv2\opencv.hpp>

  

1.加载图像(cv::imread)(OPENCV 支持 JPG,PNG,TIFF等常见格式图像文件加载)

imread函数原型是:

CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );

------imread加载一副由filename指定的图像文件并返回一个Mat对象

------第一个参数是文件的完整路径,第二个参数表示加载的图像是什么类型,支持常见的三种值

-----默认值1下加载一副图像

Mat src = imread("E:\\vsprom\\learn01\\test.jpg");

跟我一起学opencv 第一课之图像加载,修改,保存

-----IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变

跟我一起学opencv 第一课之图像加载,修改,保存

-----IMREAD_GRAYSCALE(0) 表示把原图作为灰度图像加载进来

跟我一起学opencv 第一课之图像加载,修改,保存

-----IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来

跟我一起学opencv 第一课之图像加载,修改,保存

Mat src = imread("E:\\vsprom\\learn01\\test.jpg",IMREAD_COLOR);

2.修改图像(cv::cvtColor) 颜色空间改变

BGR2GRAY ---------RGB图像变为灰度图像

跟我一起学opencv 第一课之图像加载,修改,保存

BGR2HLS-------RGB色彩空间转为HLS色彩空间

跟我一起学opencv 第一课之图像加载,修改,保存

    Mat output_img;
cvtColor(src, output_img, CV_BGR2HLS);
imshow("output image", output_img);

3.保存图像(cv::imwrite)

*******保存图像文件到指定目录

imwrite("D:/TEST.PNG", output_img);

跟我一起学opencv 第一课之图像加载,修改,保存

*******只有8位,16位的PNG,JPG,TIFF文件格式而且是单通道或者三通道的BGR图像才可以通过这种方式保存

JPG格式

imwrite("D:/TEST.JPG", output_img);

跟我一起学opencv 第一课之图像加载,修改,保存

TIFF

跟我一起学opencv 第一课之图像加载,修改,保存

*******保存PNG指定格式的时候可以保存透明通道的图片

*******可以指定压缩参数

完整代码:

#include<opencv2\opencv.hpp>
#include<iostream> using namespace cv;
using namespace std; int main(int argc, char **argv)
{
Mat src = imread("E:\\vsprom\\learn01\\test.jpg",IMREAD_COLOR);
if (src.empty())
{
cout << "can not load image...\n"<<endl;
return -;
}
namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);
imshow("test opencv setup", src); namedWindow("output image", CV_WINDOW_AUTOSIZE);
Mat output_img;
cvtColor(src, output_img, CV_BGR2HLS);
imshow("output image", output_img); imwrite("D:/TEST.tif", output_img); waitKey();
return ;
}