影象的載入、修改、儲存
阿新 • • 發佈:2018-12-02
目標
- 載入一幅影象:cv::imread()
- 將RGB圖轉化成灰度影象:cv::cvtColor()
- 將影象存入磁碟: cv::imwrite()
- 顯示影象:cv::namedWindows與cv::imshow()
函式說明
- cv::imread()
- 返回值:將影象轉成Mat物件 返回
- 第一個引數:影象名(可加路徑)
- 第二個引數(常見有三種):
IMREAD_UNCHANGED :載入原圖
IMREAD_GRAYSCALE :轉化成單通道的灰度影象
IMREAD_COLOR :將原圖轉化成BGR順序的彩色影象
- cv::cvtColor()
- Mat物件,源影象
- Mat物件,目的影象
- 轉化方式:COLOR_BGR2HLS、COLOR_BGR2GRAY 、COLOR_BGR2HSV等
- cv::imwrite():儲存一張影象
- 第一個引數:檔案路徑,根據副檔名來儲存格式
- 第二個引數:影象 物件
- cv::namedWindows與cv::imshow()
-
namedWindows:建立一個視窗,由OpenCV自動建立銷燬(如果你真的想銷燬可以呼叫 cv::destroyWindow or cv::destroyAllWindows ),你無需關心,如果已經有了相同名字的視窗,那麼呼叫沒有任何動作。
(1)第一個引數:傳一個 視窗名即可
(2)第二個引數:WINDOW_NORMAL(可以調節視窗大小) 、WINDOW_AUTOSIZE (預設 -
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