黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Opencv讀取視頻一閃而過情況分析

系統(tǒng) 2085 0

在參加一個(gè)軟件比賽需要用opencv對視頻的處理,也碰到了一些問題。

最常見的就是視頻一閃而過了,在網(wǎng)上查了好久都沒解決,

最后重裝在配置環(huán)境變量時(shí)發(fā)現(xiàn)的。

現(xiàn)在我來終結(jié)一下估計(jì)是比較全的了。

先說明我用的是vs2012+opencv(2.4.8),c++編程;

關(guān)于配置就不說了網(wǎng)上很多

代碼如下:

?

      #include"highgui.h"

#include"cv.h"



//聲明一個(gè)CvCapture類型指針 用于接收cvCreateFileCapture的返回值

CvCapture* g_capture = NULL;

//記錄滾動(dòng)條的當(dāng)前位置

int g_slider_pos = 0 ;

//對視頻幀進(jìn)行計(jì)數(shù)的變量

int frame_count = 0;



//滾動(dòng)條的回調(diào)函數(shù) 參數(shù)int pos 是指當(dāng)前滾動(dòng)條所在位置

void on_changed(int pos)

{

//設(shè)置g_capture的屬性 使得 從位置pos開始播放視頻

cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);

//在拉動(dòng)滾動(dòng)條后 保持變量frame_count與滾動(dòng)條的位置是同步的 

frame_count = pos ;

}



int main(int argc,char* argv[])

{

//創(chuàng)建一個(gè)窗口 

cvNamedWindow( "show");

//打開有一個(gè)視頻文件

g_capture=cvCreateFileCapture("D:\\car.mp4");

//獲取視頻的總幀數(shù)

int frames=(int )cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);



if(frames>0)

{

//在窗口show上創(chuàng)建名字為Position的滾動(dòng)條

cvCreateTrackbar( "Position","show" ,&g_slider_pos,frames,on_changed);

} 



//圖像指針變量

IplImage* frame;



while(1)

{

//從g_capture獲取一幀圖像 填充到相應(yīng)的內(nèi)存緩沖區(qū)

frame=cvQueryFrame(g_capture);

//如果到視頻結(jié)尾 則退出循環(huán)

if(!frame) break ;

//顯示圖像

cvShowImage( "show",frame);

//接收用戶按鍵

char c = cvWaitKey(33);

//如果接收到 按鍵'Esc' 則退出循環(huán)

if(c==27)

break;

//滾動(dòng)條 隨著視頻的播放 進(jìn)行移動(dòng)

cvSetTrackbarPos( "Position","show" ,frame_count);

frame_count++;

}

//釋放資源

cvReleaseCapture(&g_capture);

cvDestroyWindow( "show");

return 0;

}


    

1.網(wǎng)上很多說是avi格式問題, 盡管是AVI文件, 需要把它轉(zhuǎn)換OpenCV支持的AVI文件.

(這是copy網(wǎng)上的)

OpenCV支持的AVI如下:

Container

FourCC

Name

Description

AVI

'DIB '

RGB(A)

Uncompressed RGB, 24 or 32 bit

AVI

'I420'

RAW I420

Uncompressed YUV, 4:2:0 chroma subsampled

AVI

'IYUV'

RAW I420

identical to I420

轉(zhuǎn)換格式解決方法:

解決方法1: 下載mencoder.exe , 在window命令行下使用:?mencoder in.avi -ovc raw -vf format=i420 -o out.avi

解決方法2: 下載VitualDub , 我使用1.9.4版本a. File->Open Video File;b. Video->Filters->Add->Convert format;

選擇4:2:0 Planar YCbCr (YV12)或者 32-Bit RGB。c. Save as AVI. 保存完畢。”

還有網(wǎng)上說opencv只支持avi格式至少我現(xiàn)在用的2.4.8還能支持MP4格式了,還跑得不錯(cuò)。

2.最后就是在配置環(huán)境變量時(shí)path路徑一定要看清楚是否寫對,

Opencv讀取視頻一閃而過情況分析

否則同樣的代碼和視頻文件在別人電腦上跑得好好的就你的有問題,可能就是這個(gè)問題了。

好了這是我寫的第一篇博客,寫的不好多多見諒!!!

?

Opencv讀取視頻一閃而過情況分析


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論