opencv學習筆記八:圖像,視頻與數據文件

HighGUI模塊包含了靜止圖像的讀寫以及視頻流的捕獲與存儲相關的功能。

圖像的載入與保存

cv::imread()讀取圖片

關於圖片的讀取,雖然有很多內在的講究,但我們完全可以不關心他,我們僅知道這個函數的兩個參數是啥,咋用就可以了;

imread(
		const string& filename,    //文件名
		int           flags = cv::IMREAD_COLOR   //標識符
	);
	IMREAD_COLOR  總是讀取三位通道圖像
	IMREAD_GRAYSCALE  總是讀取單通道圖像
	IMREAD_ANYCOLOR   通道數由實際通道數(不超過3)
	IMREAD_ANYDEPTH   允許加載超過8bit深度

cv::imwrite()保存圖像

	imwrite(
		const string&    filename,    //給定圖片存儲的文件名
		cv::InputArray   image,  //帶存儲的輸入圖像
		const vector<int>&  params = vector<int>()  //特殊類型文件的寫入操作是所需的數據 
	)

視頻的處理

打開視頻對象

打開一個視頻對象或者打開一個攝像頭設備,有兩種思路,一種爲使用構造函數:

	VideoCapture cap1("1.avi");   //打開工程目錄下名爲1.avi的文件
	VideoCapture cap2(0);    //打開設備號爲0的攝像頭

還有一種可以先創建一個視頻流對象,再對該對象進行.open()操作:

	VideoCapture cap3,cap4;
	cap3.open("1.avi");
	cap4.open(0);

讀取圖片

從視頻流中讀取圖像也有兩種方法,
一種是使用VideoCapture::read()函數進行讀取:

	Mat frame;
	cap1.read(frame);

另一種爲使用輸入流操作符:

	cap1 >> frame;

讀取和設置視頻對象數據

視頻文件中有很多可以設置的參數,我們通常使VideoCapture::get()和VideoCapture::set()函數來進行設置:

VideoCapture::get(
		int  propid
	  );
VideoCapture::set(
	int  propid,
	double  value
  );

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

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