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

Posted huipengbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟我一起学opencv 第一课之图像加载,修改,保存相关的知识,希望对你有一定的参考价值。

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

#include<opencv2opencv.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");

技术图片

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

技术图片

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

技术图片

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

 技术图片

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

 

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

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

技术图片

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

技术图片

 

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

 

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

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

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

技术图片

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

JPG格式

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

 

技术图片

 

TIFF

技术图片

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

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

 完整代码:

#include<opencv2opencv.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...
"<<endl;
        return -1;
    }
    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(0);
    return 0;
}

 

以上是关于跟我一起学opencv 第一课之图像加载,修改,保存的主要内容,如果未能解决你的问题,请参考以下文章

史上最简单&最全&最基础&入门到精通的opencv图像处理 第一课:图像读入与灰度处理

CPP和Opencv联合编程基础第一章第一节加载图像

OpenCV竟然可以这样学!成神之路终将不远

跟我一起学python-02

OpenCV 第一课(安装与配置)

跟我一起学docker--数据管理