• 跟我一起学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;
    }
  • 相关阅读:
    VMwarePlayer虚拟机下centos6的静态IP配置
    C/C++ 父子进程之间的文件描述符问题
    C++ wait捕捉的信号处理WIFEXITED/WEXITSTATUS/WIFSIGNALED
    WIN7下用笔记本创建无线网
    C++ readdir、readdir_r函数
    C++ int转string(stringstream可转更多类型)
    C/C++函数中使用可变参数
    C/C++中static关键字作用总结
    Unix网络编程第三版源码编译
    Linux下初次使用github
  • 原文地址:https://www.cnblogs.com/huipengbo/p/10733546.html
Copyright © 2020-2023  润新知