跟我一起學opencv 第一課之圖像加載,修改,保存
阿新 • • 發佈:2019-04-19
什麽 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 第一課之圖像加載,修改,保存