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;
    }
  • 相关阅读:
    解决pgAdmin4启动失败方法
    X86汇编——计算斐波那契数列程序(详细注释和流程图说明)
    unity3d学习笔记(一) 第一人称视角实现和倒计时实现
    项目element-ui checkbox里面获取选中项 实现批量删除 修改
    //统计报表-供水量统计主列表分页查询 Element-ui的分页插件
    导出excel的功能效果实现
    echarts的基本使用以及如何使用官方实例的方法
    vue.js移动端app:初始配置
    使用雪碧图
    iconFont字体图标
  • 原文地址:https://www.cnblogs.com/huipengbo/p/10733546.html
Copyright © 2011-2022 走看看