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

释放双眼,带上耳机,听听看~!

使用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\");

-----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<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 -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;
}

 

人已赞赏
随笔日记

java之servlet入门操作教程一

2020-11-9 4:28:27

随笔日记

银行、信托、券商转型路线图渐清晰 大资管百万亿市场竞争白热化

2020-11-9 4:28:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索