2015-04-02 111 views
4

我跟蹤了OpenCV對象跟蹤的this tutorial,並設法使我的筆記本電腦上的代碼可以正常工作,這兩種情況都使用Visual Studio和Windows在我的Ubuntu VM上(使用CMake)。現在我嘗試在我的Raspberry Pi上運行它(運行Raspbian)。 cmake .make命令似乎工作正常,但是當我嘗試運行可執行文件,我得到以下錯誤:openCV錯誤:Raspberry Pi上的斷言失敗(scn == 3 || scn == 4)

[email protected] ~/Desktop/Track $ ./TrackObj 
init done 
opengl support available 
OpenCV Error: Assertion failed ((scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp, line 3961 
terminate called after throwing an instance of 'cv::Exception' 
    what(): /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp:3961: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor 

Aborted 

我已經看了this question和它相似的,但它並沒有幫助我解決問題。

這裏可用的源代碼:

objectTrackingTutorial.cpp

Fruit.cpp

Fruit.h

我聽說,這個問題可能是用相機或攝像頭驅動程序,所以我嘗試使用USB攝像頭以及pi相機,我也嘗試將capture.open(0);行更改爲capture.open("someMovie.mp4");,因此,不要打開直播流,它會運行在一個退出的視頻,但它仍然給我同樣的錯誤。

+0

也許試試它預載的圖像,你完全確信的大小,格式等。這是因爲它可能是以完全意想不到的方式從網絡攝像頭讀取。 – GPPK 2015-04-02 13:55:29

+0

你能更具體嗎?你的意思是我應該改變'Capture.open(0);'? – DMEM 2015-04-02 14:11:18

+0

你使用樹莓派相機嗎? – theoB610 2015-12-15 10:12:37

回答

4

錯誤表明您要在調用'cvtColor()'級別轉換的幀或圖像與您在函數中指示的類型不同。 兩個可能的原因:

  1. 圖像有不同類型的
  2. 或你的框架是空的

嘗試改變CV_BGR2HSV到CV_RGB2HSV 或嘗試打印從您的凸輪,以檢查是否獲得圖像它是空的或不是。 希望它有幫助

+0

將CV_BGR2HSV更改爲CV_RGB2HSV不起作用。你能否詳細解釋如何從相機打印圖像。提醒一下:此代碼在我的筆記本電腦(Ubuntu和Windows)上完美運行。這就是爲什麼我認爲這個問題與Pi – DMEM 2015-04-02 17:04:10

+0

從相機打印圖像有關,只需使用: if(!image.empty())imshow(「result」,image); 否則繼續; – Kacem 2015-04-02 17:07:18

+0

我知道如何打印圖片,我問我該如何嘗試打印此代碼考慮到代碼不工作......? – DMEM 2015-04-03 08:45:15

相關問題