1. 程式人生 > >影象的載入、修改、儲存

影象的載入、修改、儲存

目標

  1. 載入一幅影象:cv::imread()
  2. 將RGB圖轉化成灰度影象:cv::cvtColor()
  3. 將影象存入磁碟: cv::imwrite()
  4. 顯示影象:cv::namedWindows與cv::imshow()

函式說明

  • cv::imread()
  1. 返回值:將影象轉成Mat物件 返回
  2. 第一個引數:影象名(可加路徑)
  3. 第二個引數(常見有三種):
        IMREAD_UNCHANGED :載入原圖
        IMREAD_GRAYSCALE :轉化成單通道的灰度影象
        IMREAD_COLOR :將原圖轉化成BGR順序的彩色影象

  • cv::cvtColor()
  1. Mat物件,源影象
  2. Mat物件,目的影象
  3. 轉化方式:COLOR_BGR2HLS、COLOR_BGR2GRAY 、COLOR_BGR2HSV等

  • cv::imwrite():儲存一張影象
  1. 第一個引數:檔案路徑,根據副檔名來儲存格式
  2. 第二個引數:影象 物件

  • cv::namedWindows與cv::imshow()
  1. namedWindows:建立一個視窗,由OpenCV自動建立銷燬(如果你真的想銷燬可以呼叫 cv::destroyWindow or cv::destroyAllWindows ),你無需關心,如果已經有了相同名字的視窗,那麼呼叫沒有任何動作。
    (1)第一個引數:傳一個 視窗名即可
    (2)第二個引數:WINDOW_NORMAL(可以調節視窗大小) 、WINDOW_AUTOSIZE (預設

    ,使用者不能改變視窗的大小)

  2. cv::imshow()
    (1) 引數1:需要顯示的視窗名
    (2) 引數2:顯示的Mat物件


演示程式碼

#include <opencv2/opencv.hpp>


using namespace cv;
using namespace std;


int main(void)
{
	Mat image;
	image = imread("../lena.jpeg");
	namedWindow("display_image",WINDOW_AUTOSIZE);
	imshow("display_image"
,image); Mat image_png; cvtColor(image,image_png,COLOR_BGR2GRAY); namedWindow("display_image_png",WINDOW_AUTOSIZE); imshow("display_image_png",image_png); imwrite("../lena.png",image_png); waitKey(); return 0; }

結果:
lena.jpeg
在這裡插入圖片描述
lena.png
在這裡插入圖片描述