zoukankan      html  css  js  c++  java
  • 跟我一起学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;
    }
  • 相关阅读:
    也谈谈关于WEB的感想
    spring boot,https,双向ssl认证
    Spring Cloud Gateway(二)
    Spring Cloud Gateway(一)
    .Net Web Service 自定义返回值命名
    随便记一下,C#并行环境操作Winform的代码段
    随便记一下,解决Windows Server 2012无法远程登录的方法
    记录C#控件DataGridView绑定BindingList无法排序问题(转)
    记录SQL Server 2019链接Oracle 11g R2的过程
    Json CPP 中文支持与入门示例
  • 原文地址:https://www.cnblogs.com/huipengbo/p/10733546.html
Copyright © 2011-2022 走看看