1. 程式人生 > >跟我一起學opencv 第一課之圖像加載,修改,保存

跟我一起學opencv 第一課之圖像加載,修改,保存

什麽 exports std named 引入 wait alt name 色彩

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

跟我一起學opencv 第一課之圖像加載,修改,保存