01 OpenCV加載、顯示、修改、保存圖片

一、加載圖像 imread

imread功能是加載圖像文件爲一個Mat對象,第一個參數表示圖像文件名稱,第二個參數表示加載的圖像是什麼類型,常見的如下:

  • IMREAD_UNCHANGED (<0) 表示加載原圖,不做任何改變
  • IMREAD_GRAYSCALE (0) 表示把原圖作爲灰度圖像加載進來
  • IMREAD_COLOR (>0) 表示把原圖作爲RGB圖像加載進來
    (opencv支持JPG、PNG、TIFF等常見格式圖像文件加載)

二、顯示圖像 namedWindows 與 imshow

namedWindow(“WindowTitle”,CV_WINDOW_AUTOSIZE) 創建一個opencv窗口,且是由opencv自動創建與釋放,不需要手動釋放

  • CV_WINDOW_AUTOSIZE 自動根據圖像大小,調整窗口大小,不能認爲的改變窗口大小
  • CV_WINDOW_NORMAL 與QT集成時使用,允許修改窗口大小

imshow 根據窗口名稱顯示圖像到指定的窗口上去,第一個參數是窗口名稱,第二個參數是Mat對象

三、修改圖像 cvtColor

cvtColor(image,gray_image,COLOR_BGR2GRAY);
cvtColor 把圖像從一個色彩空間轉換到另一個色彩空間,有三個參數,第一個參數表示原圖像,第二個參數表示色彩空間轉換後的圖像,第三個參數表示原和目標圖像的色彩空間,常用的有:COLOR_BGR2HLS、COLOR_BGR2GRAY等

四、保存圖像 imwrite

  • 保存圖像文件到指定目錄路徑
  • 只有8位、16位的PNG、JPG、TIFF文件格式而且是單通道或者三通道的BGR圖像纔可以通過此方式保存
  • 保存PNG格式的時候可以保存透明通道的圖片
  • 可以指定壓縮參數

五、代碼演示


#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
	//Mat src = imread("images/01.jpg"); // 加載原圖像
	//Mat src = imread("images/01.jpg",IMREAD_GRAYSCALE); // 灰度圖像
	Mat src = imread("images/01.jpg", IMREAD_COLOR); // 作爲RGB圖像加載進來
	if (src.empty())
	{
		printf("could not load image\n");
		return -1;
	}

	namedWindow("opencv demo01", CV_WINDOW_AUTOSIZE); // 創建一個OpenCV窗口
	imshow("opencv demo01", src);

	namedWindow("output window", CV_WINDOW_AUTOSIZE);
	Mat output_image;
	cvtColor(src, output_image, COLOR_BGR2GRAY);
	imshow("output window", output_image);

	imwrite("images/hlstest.png", output_image);
	imwrite("images/hlstest.tif", output_image);
	imwrite("images/hlstest.jpg", output_image);

	waitKey(0);
	return 0;
}

在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章