国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Opencv(C++)系列學(xué)習(xí)---讀取視頻文件和打開(kāi)攝像頭

這篇具有很好參考價(jià)值的文章主要介紹了Opencv(C++)系列學(xué)習(xí)---讀取視頻文件和打開(kāi)攝像頭。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

今天學(xué)習(xí)的這兩個(gè)內(nèi)容比較簡(jiǎn)單,話不多說(shuō),直接上代碼!

目錄

【1】讀取視頻文件

【2】攝像頭讀取視頻


【1】讀取視頻文件

#include<iostream>
#include<opencv2\imgproc\imgproc.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc,char** argv)
{
	//定義視頻讀取器

	//若是讀取視頻,則需要在cap()內(nèi)提供讀取的地址
	VideoCapture cap("E:\\喬大花進(jìn)度\\11-21\\讀取攝像頭和視頻\\tree.avi");

	//對(duì)視頻讀取是否成功進(jìn)行判斷
	if (!cap.isOpened())
	{
		cout << "視頻讀取失敗,請(qǐng)檢查地址!??!" << endl;
		return -1;
	}

	Mat frame;//frame 用來(lái)接收視頻每一幀的圖片
	namedWindow("test",WINDOW_AUTOSIZE);
	while (true)
	{
		//將視頻中每幀的圖片傳入frame
		cap >> frame;
		
		//第二種方法
	//	bool ok = cap.read(frame); ok是對(duì)視頻是否成功讀取每幀圖片進(jìn)行判斷,抓取的每幀圖像存在frame中

	//判斷載入的圖片是否為空,同時(shí)也可以用frame.data 代替
		if (frame.empty())
		{
			//重新從開(kāi)始讀取
			cout << "視頻讀取完成,重新開(kāi)始讀取" << endl;

			//set函數(shù)可以設(shè)置cap捕捉器中參數(shù),也可以獲取捕捉視頻的一些信息
			cap.set(CAP_PROP_POS_FRAMES,0);//將幀設(shè)置在0處
			continue;
		}
		
		imshow("test",frame);
		
		//定義循環(huán)速度為50ms
		int key = waitKey(50);
		if (key==27||key=='q'||key=='Q')
		{
			break;
		}
	}
	destroyAllWindows();
	return 0;

}

運(yùn)行結(jié)果:

opencv打開(kāi)攝像頭,Opencv學(xué)習(xí)(C++),opencv,人工智能,c++

?這段代碼較為簡(jiǎn)單,有興趣的同學(xué)也可以挑戰(zhàn)一下,在視頻讀取上加個(gè)進(jìn)度條,可以通過(guò)鼠標(biāo)拖動(dòng)進(jìn)度條到指定位置,像平時(shí)我們用的視頻播放器一樣,主要是createTrackbar算子調(diào)用回調(diào)函數(shù)實(shí)現(xiàn)。

參考代碼如下:

#include<iostream>
#include<opencv2\imgproc\imgproc.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\opencv.hpp>

using namespace std;
using namespace cv;

//定義全局變量
int g_slider_position = 0, frames_all = 0;
VideoCapture cap;
//定義全局函數(shù)
void onTrackerslide(int, void*);

void onTrackerslide(int, void*)
{
	//將視頻移動(dòng)到指定位置幀
	cap.set(CAP_PROP_POS_FRAMES, g_slider_position);
}

int main(int argc, char** argv)
{
	//定義視頻讀取器

	//若是讀取視頻,則需要在cap()內(nèi)提供讀取的地址
	/*VideoCapture cap("E:\\喬大花進(jìn)度\\11-21\\讀取攝像頭和視頻\\tree.avi");*/
	cap.open("E:\\喬大花進(jìn)度\\11-21\\讀取攝像頭和視頻\\1.mp4");

	//對(duì)視頻讀取是否成功進(jìn)行判斷
	if (!cap.isOpened())
	{
		cout << "視頻讀取失敗,請(qǐng)檢查地址!??!" << endl;
		return -1;
	}

	Mat frame;//frame 用來(lái)接收視頻每一幀的圖片
	namedWindow("test", WINDOW_AUTOSIZE);

	//獲取圖像的總幀數(shù)
	frames_all = cap.get(CAP_PROP_FRAME_COUNT);
	cout << "總的幀數(shù)為:" << frames_all << endl;
	//創(chuàng)建進(jìn)度條
	createTrackbar("進(jìn)度", "test", &g_slider_position, frames_all, onTrackerslide);

	//回調(diào)函數(shù)初始化
//	onTrackerslide(0,0);
	int i = 0;
	while (true)
	{
			//將視頻中每幀的圖片傳入frame
			cap >> frame;

		//第二種方法
	//	bool ok = cap.read(frame); ok是對(duì)視頻是否成功讀取每幀圖片進(jìn)行判斷,抓取的每幀圖像存在frame中


	//判斷載入的圖片是否為空,同時(shí)也可以用frame.data 代替
		if (frame.empty())
		{
			//重新從開(kāi)始讀取
			cout << "視頻讀取完成,重新開(kāi)始讀取" << endl;

			//set函數(shù)可以設(shè)置cap捕捉器中參數(shù),get可以獲取捕捉視頻的一些信息
			cap.set(CAP_PROP_POS_FRAMES, 0);//將幀設(shè)置在0處
			continue;
		}

		//設(shè)置進(jìn)度條的位置,使進(jìn)度條可以可以和視頻一致運(yùn)動(dòng)
		int now_frame = cap.get(CAP_PROP_POS_FRAMES);
		setTrackbarPos("進(jìn)度", "test", now_frame);

		//定義循環(huán)速度為50ms
		int key = waitKey(20);

		imshow("test", frame);

		if (key == 27 || key == 'q' || key == 'Q')
		{
			break;

		}

	}
	cv::destroyAllWindows();
	return 0;

}

運(yùn)行結(jié)果為:

opencv打開(kāi)攝像頭,Opencv學(xué)習(xí)(C++),opencv,人工智能,c++

【2】攝像頭讀取視頻

#include<opencv2\opencv.hpp>
#include<iostream>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
	//argc為設(shè)備上攝像頭的數(shù)量,如果只有一個(gè)1,則初始ID為0,默認(rèn)為-1
	cout << argc << endl;
	//打開(kāi)初始攝像頭
	VideoCapture cap(0);
	
	namedWindow("test",WINDOW_AUTOSIZE);
	Mat frame;
	while (true)
	{
		cap >> frame;
		if (!frame.data)
		{
			cout << "檢查攝像頭" << endl;
			break;
		}

		imshow("test", frame);
		int key = waitKey(20);
		if (key==27||key=='Q'||key=='q')
		{
			break;
		}

	}
	
	system("pause");
	return 0;
}

運(yùn)行結(jié)果:

opencv打開(kāi)攝像頭,Opencv學(xué)習(xí)(C++),opencv,人工智能,c++文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-566842.html

到了這里,關(guān)于Opencv(C++)系列學(xué)習(xí)---讀取視頻文件和打開(kāi)攝像頭的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OpenCV 實(shí)現(xiàn)讀取攝像頭、視頻讀取保存 (C++)

    重點(diǎn)語(yǔ)句:VideoCapture、imshow 原理:使用VideoCapture語(yǔ)句讀取攝像頭,再利用while一次次將VideoCapture所讀取的數(shù)據(jù)利用imshow語(yǔ)句一幀幀地讀取出來(lái) 重點(diǎn)語(yǔ)句:VideoWriter 原理:在攝像頭讀取完圖之后,利用VideoWriter語(yǔ)句將圖像保存為固定格式 通過(guò)加入一個(gè)循環(huán)語(yǔ)句,按空格將圖片按

    2024年02月11日
    瀏覽(24)
  • OpenCv:采集攝像頭視頻、讀取視頻幀與視頻錄制

    目錄 一、涉及OpenCv函數(shù) 二、什么是幀、幀的大小代表什么 三、攝像頭獲取視頻數(shù)據(jù) 四、錄制視頻并保存 從設(shè)備,可以是攝像頭可以是本地視頻, 獲取視頻的函數(shù) cv.VideoCapture()。 本函數(shù)作用在于創(chuàng)建一個(gè)VideoCapture或者VideoWriter對(duì)象,真正的讀取和寫(xiě)入是通過(guò)創(chuàng)建的對(duì)象進(jìn)行

    2024年02月16日
    瀏覽(31)
  • 【opencv+圖像處理】(Gui Features in OpenCV) 1-1攝像頭:采集攝像頭視頻,讀取視頻幀,錄制視頻

    【opencv+圖像處理】(Gui Features in OpenCV) 1-1攝像頭:采集攝像頭視頻,讀取視頻幀,錄制視頻

    本專欄代碼總庫(kù)地址 https://github.com/xiawei20161308104/xv_opencv_tutorials 本節(jié)代碼路徑 xv_opencv_tutorials/VideoRelated/get_started_with_videos.py xv_opencv_tutorials/VideoRelated/get_and_set_video.py xv_opencv_tutorials/VideoRelated/save_video.py 參考官網(wǎng) https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html 從設(shè)備,可以是攝像

    2024年02月03日
    瀏覽(20)
  • 使用OpenCV調(diào)用攝像頭和讀取視頻圖片

    使用OpenCV調(diào)用攝像頭和讀取視頻圖片

    要捕獲視頻,你需要?jiǎng)?chuàng)建一個(gè) VideoCapture 對(duì)象。它的參數(shù)是設(shè)備索引的名稱。設(shè)備索引就是指定哪個(gè)攝像頭的數(shù)字。正常情況下,內(nèi)部攝像頭可以通過(guò)傳入0來(lái)調(diào)用,傳遞1來(lái)選擇外置的第二個(gè)相機(jī),以此類推。在此之后,你可以逐幀捕獲。但是在最后,不要忘記釋放俘虜。 直

    2024年02月08日
    瀏覽(28)
  • opencv基本操作二(讀取視頻流與保存視頻、讀取攝像頭并保存視頻)

    opencv常用 讀視頻函數(shù) cv2.VideoCapture 、 cv2.VideoCapture.get 等,可以參考這里 opencv常用 寫(xiě)視頻函數(shù) cv2.VideoWriter 等可以參考這里 ,其中視頻格式可以參考這里 videoCapture.read() 是按幀讀取視頻, ret,frame 是獲 .read() 方法的兩個(gè)返回值。其中 ret 是布爾值,如果讀取幀是正確的則返回

    2023年04月08日
    瀏覽(380)
  • VC++中使用OpenCV讀取圖像、讀取本地視頻、讀取攝像頭并實(shí)時(shí)顯示

    VC++中使用OpenCV讀取圖像、讀取本地視頻、讀取攝像頭并實(shí)時(shí)顯示

    最近閑著跟著油管博主murtazahassan,學(xué)習(xí)了一下LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision,對(duì)應(yīng)的Github源代碼地址為:Learn-OpenCV-cpp-in-4-Hours OpenCV是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),其官網(wǎng)地址為:https://opencv.org/,對(duì)應(yīng)Github源碼地址為:https://github.com/opencv/opencv,目前來(lái)說(shuō)

    2024年01月17日
    瀏覽(36)
  • opencv基礎(chǔ): 視頻,攝像頭讀取與保存的常用方法

    opencv基礎(chǔ): 視頻,攝像頭讀取與保存的常用方法

    當(dāng)然還可以從視頻中抓取截圖,所以現(xiàn)在聊一下常用的抓取視頻截圖的的方法。 上面有三種構(gòu)造方法, 第一種是無(wú)法構(gòu)造方法。 第二種參數(shù)device是一個(gè)數(shù)字。 一般筆記本如此寫(xiě)cv2.VideoCapture(0); 因?yàn)槟J(rèn)是0 ,如果有多個(gè)攝像頭,就需要看設(shè)置的攝像頭代表的數(shù)字了。 第二種

    2024年02月09日
    瀏覽(28)
  • opencv入門(mén)到精通——圖片,視頻,攝像頭的讀取與保存

    opencv入門(mén)到精通——圖片,視頻,攝像頭的讀取與保存

    OpenCV是一個(gè)流行的開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),由英特爾公司發(fā)起發(fā)展。它提供了超過(guò)2500個(gè)優(yōu)化算法和許多工具包,可用于灰度、彩色、深度、基于特征和運(yùn)動(dòng)跟蹤等的圖像處理和計(jì)算機(jī)視覺(jué)應(yīng)用。OpenCV主要使用C++語(yǔ)言編寫(xiě),同時(shí)也支持Python、Java、C等語(yǔ)言。由于其開(kāi)源和廣泛使用的

    2024年02月08日
    瀏覽(26)
  • cv2.VideoCapture使用,opencv讀取攝像頭,視頻圖像

    ????????cv2.VideoCapture()用于讀取視頻,也可以用于讀取攝像頭圖像。 ????????上面的2種寫(xiě)法,第一種表示讀取攝像頭,第二種讀取視頻文件,返回值就是視頻數(shù)據(jù)。 ????????在讀取到視頻后,可以使用isOpened方法來(lái)判斷視頻是否能夠打開(kāi),能打開(kāi)返回True,不能夠打

    2024年02月12日
    瀏覽(27)
  • OpenCV中讀取、顯示、保存攝像頭視頻講解與實(shí)戰(zhàn)(附Python源碼)

    OpenCV中讀取、顯示、保存攝像頭視頻講解與實(shí)戰(zhàn)(附Python源碼)

    需要源碼請(qǐng)點(diǎn)贊關(guān)注收藏后評(píng)論區(qū)留言私信~~~ OpenCV不僅能夠處理圖像,還能夠處理視頻。視頻是由大量的圖像構(gòu)成的,這些圖像以固定的時(shí)間間隔從視頻中獲取。這樣,就能夠使用圖像處理的方法對(duì)這些圖像進(jìn)行處理,進(jìn)而達(dá)到處理視頻的目的。要處理視頻,需要先對(duì)視頻進(jìn)

    2024年02月05日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包