opencv的第一課
目錄
顯示圖像 (cv::namedWindos 與cv::imshow)
今天記錄簡單的一課,有關opencv的簡單操作,昨天教了大家如何配置環境,與簡單的測試,今天記錄opencv的第一課。
話不多說先上結果圖:
原圖:
改變的圖:
代碼部分非常簡單:
#include<iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("D:\\image\\one.jpg");
if (src.empty())
{
cout << "could not load image ..." << endl;
return -1;
}
namedWindow("opencv setpu demo",CV_WINDOW_AUTOSIZE);
imshow("opencv setpu demo", src);
Mat output_image;
cvtColor(src, output_image, CV_BGR2HSV);
imshow("output window", output_image);
imwrite("D:/image/test.tif", output_image);
waitKey(0);
return 0;
}
加載圖像:imread()
imread 功能是加載圖像文件成爲一個 Mat 對象,其中第一個參數表示圖像文件名稱
第二個參數,表示加載的圖像是什麼類型,支持常見的三個參數值
IMREAD_UNCHANGED (<0) 表示加載原圖,不做任何改變
IMREAD_GRAYSCALE ( 0)表示把原圖作爲灰度圖像加載進來
IMREAD_COLOR (>0) 表示把原圖作爲RGB圖像加載進來
所以可以寫成: Mat src = imread("D:\\image\\one.jpg", IMREAD_GRAYSCALE); 或者寫0都可以把圖像變成灰色
顯示圖像 (cv::namedWindos 與cv::imshow)
namedWindos功能是創建一個OpenCV窗口,它是由OpenCV自動創建與釋放,你無需取銷燬它。
常見用法namedWindow("Window Title", WINDOW_AUTOSIZE)
WINDOW_AUTOSIZE會自動根據圖像大小,顯示窗口大小,不能人爲改變窗口大小
WINDOW_NORMAL,跟QT集成的時候會使用,允許修改窗口大小。
limshow根據窗口名稱顯示圖像到指定的窗口上去,第一個參數是窗口名稱,第二參數是Mat對象
修改圖像 (cv::cvtColor)
cvtColor的功能是把圖像從一個彩色空間轉換到另外一個色彩空間,有三個參數,第一個參數表示源圖像、
第二參數表示色彩 空間轉換之後的圖像、第三個參數表示源和目標色彩空間如:
COLOR_BGR2HLS 、COLOR_BGR2GRAY 等
cvtColor( image, gray_image, COLOR_BGR2GRAY );
保存圖像(cv::imwrite)
保存圖像文件到指定目錄路徑
只有8位、16位的PNG、JPG、Tiff文件格式而且是單通道或者三通道的BGR的圖像纔可以通過這種方式保存
保存PNG格式的時候可以保存透明通道的圖片
可以指定壓縮參數
本文章內容爲 講師:賈志剛提供的ppt中的內容,寫出來方便大家理解,加油!
喜歡本文章的同學們,可以一起來學習,挑戰自己的學習。