溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

opencv cvCaptureFromFile讀取視頻問題匯總

發(fā)布時(shí)間:2020-08-06 21:56:21 來源:ITPUB博客 閱讀:237 作者:yingzimizhan 欄目:建站服務(wù)器

一、無法讀取文件
報(bào)錯(cuò):

OpenCV報(bào)錯(cuò):

warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)
capture device failed to open!

解決方案:更改輸入video文件的路徑,確定正確后即運(yùn)行成功。

二、
之前一直使用臺(tái)式機(jī)win7 x64位系統(tǒng)做圖形圖形處理,調(diào)用opencv庫函數(shù)一直很正常;然而最近使用筆記本處理時(shí)總是讀取不到cvCaptureFromFile視頻文件。


1、問題原因

(1)可以是讀取的文件目錄存在問題,找不到相應(yīng)的視頻文件,導(dǎo)致返回NULL;

(2)讀取的視頻文件存在問題,不是真正的視頻文件;

(3)缺失解碼

由于我是從臺(tái)式機(jī)上copy過來的項(xiàng)目,前兩總情況基本不成立;由于系統(tǒng)的差異,我還是測(cè)試了路徑中使用‘/’ 或者'\\'、間接路徑改為直接路徑等,但是任然沒有解決。

2、解決方法

通過一系列的測(cè)試,我最終鎖定問題3,于是檢索相關(guān)問題解決方案。

(1)部分解決方法  下載xvid并安裝,https://www.xvid.com/download/ 。

(2)另一種說法是下載K-Lite_Codec_Pack 軟件安裝,里面包含了需要的解碼接口。

然而,這兩種方法都沒有解決我存在的問題,最初我還以為是設(shè)置除了問題,是不是環(huán)境變量設(shè)置不對(duì),安裝以上的軟件是不需要配置,但總覺得挺麻煩,于是冷靜下來,從頭在思考??傆X得opencv設(shè)計(jì)不應(yīng)該存在這么強(qiáng)依賴性的缺陷,于是我想到是不是缺少組件。因?yàn)榫幾g通過,程序可以運(yùn)行,我就認(rèn)為配置上不會(huì)存在問題,但還是看了看相關(guān)dll。

(3)缺少opencv_ffmpeg2410.dll,將opencv_ffmpeg2410.dll加入到項(xiàng)目根文件夾下或者debug中。

三、dll文件配置

我們?cè)谑褂胿s進(jìn)行開發(fā)調(diào)試的時(shí)候經(jīng)常會(huì)遇到一個(gè)問題,就是當(dāng)我們的主工程引用到其他工程更新的dll(我們經(jīng)常采用copy到工程目錄的方法)、亦或者當(dāng)我們的多個(gè)工程引用到同一個(gè)dll文件的時(shí)候,我們?cè)趺磥砼渲茫?/span>

1、將dll配置到環(huán)境變量:

這種方法當(dāng)然是可行的,只不過當(dāng)我們的工程位置發(fā)生變化,環(huán)境變量就需要重新配置,而且為了單個(gè)小工程就去改變環(huán)境變量顯得小題大做,不過也是一種方法;

2、工程的本地化配置:

通過設(shè)置vs工程的環(huán)境變量,實(shí)現(xiàn)對(duì)單個(gè)工程本地化配置的目標(biāo),環(huán)境變量可隨整個(gè)工程遷移,設(shè)置方法:vs工程屬性-->配置屬性-->調(diào)試-->環(huán)境,例如,我們要引用../../bin/目錄里面的dll,那么我們可以設(shè)置為:path=%path%;..\..\bin,如圖:

opencv cvCaptureFromFile讀取視頻問題匯總

四、無法查找或打開 PDB 文件

問題描述

“Win32Project3.exe”(Win32):  已加載“D:\software\VS2013\VS2013 文檔\Win32Project3\Debug\Win32Project3.exe”。已加載符號(hào)。
“Win32Project3.exe”(Win32):  已加載“C:\Windows\SysWOW64\ntdll.dll”。無法查找或打開 PDB 文件。
“Win32Project3.exe”(Win32):  已加載“C:\Windows\SysWOW64\kernel32.dll”。已加載符號(hào)。
“Win32Project3.exe”(Win32):  已加載“C:\Windows\SysWOW64\KernelBase.dll”。無法查找或打開 PDB 文件。
“Win32Project3.exe”(Win32):  已加載“C:\Windows\SysWOW64\msvcr120d.dll”。已加載符號(hào)。
程序“[4308] Win32Project3.exe”已退出,返回值為 0 (0x0)。
	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

解決方式

1、點(diǎn) 調(diào)試,然后 選項(xiàng)和設(shè)置 
opencv cvCaptureFromFile讀取視頻問題匯總 
2、右邊勾上 啟用源服務(wù)器支持 
opencv cvCaptureFromFile讀取視頻問題匯總 
3、左邊點(diǎn) 符號(hào),把 微軟符號(hào)服務(wù)器 勾選上 
opencv cvCaptureFromFile讀取視頻問題匯總 
4、運(yùn)行的時(shí)候等一下,加載完成后就好了。 
5、只是第一次加載,不用擔(dān)心?;蛘?,你也可以等加載完了之后,再把之前勾選的取消掉,也沒有問題。 
opencv cvCaptureFromFile讀取視頻問題匯總



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI