ERROR: SampleCB() - buffer sizes do not match 解決方法

OpenCV ERROR: SampleCB() - buffer sizes do not match 解決方法

  • 原因:由於經過採集卡壓縮等原因,實際讀到的圖像流尺寸與原始尺寸不匹配
  • 解決方法:手動設置爲採集卡壓縮後的實際尺寸
    VideoCapture cap(攝像機序號);
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 壓縮後的實際寬);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, 壓縮後的實際高);
    Mat camFeed;
    cap.read(camFeed);

具體事例

我的電腦直接插入 1 Channel USB Capture 時,即單個接入USB攝像頭設備,按OpenCV 默認讀取正常,但由於我需要同時接入4個攝像頭同時獲取圖像,我換成了4 Channel USB DVR,一般都附帶一個監控軟件,需要運行這個四合一監控軟件,通過軟件的流媒體輸出方式供電腦其他程序使用這4個通道的視頻信號,然後就出現了這個bug。

我參考了下方鏈接中的回答,在讀取視頻流之前,將VideoCapture 對象cap的像素寬高設置爲USB DVR監控軟件的輸出寬高之後,便可以順利讀取。
參考:http://opencv.yahoogroups.narkive.com/Yc8H2P6w/error-samplecb-buffer-sizes-do-not-match


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