C++ OpenCV VideoWriter報錯解決方案
阿新 • • 發佈:2022-03-23
今天終於把四相機同步採集系統的所有bug都解決了,遇到了好多問題百度都是錯誤的答案,下面記錄一下。
(1)自定義一張圖片,輸入VideoWriter裡面可以生成一個視訊。可是換一臺電腦就會出現如下錯誤:
cv::VideoWriter::open VIDEOIO(CV_IMAGES):raise OpenCV exception:
OpenCV(4.5.5) C:\build\master_winpack-build-win64-vc14\opencv\module\videoio\src\cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number(in the name of file): 一堆亂碼 in function cv::icvExtractPattern'
網上搜了全是說什麼把檔名test.mp4改成什麼帶數字的test001.mp4
亂講。實際上只需要把opencv的版本降低成3.幾的就可以了。
(2)CV_8UC4(24)轉成CV_8UC3(16)。
輸入VideoWriter裡面的RGB圖片一定是三通道的,不能是帶透明度的四通道資料。網上的人說用convertTo()這個函式轉換。亂講,實際上這個函式不能改變通道數。正確的應該是使用split()函式把8UC4的圖片分成大小為4的陣列,然後再merge()函式把前面三個拼接起來。這樣就能去掉第四個通道(比如透明度了)。
接下來每天都要去好遠的地方採集資料,上午花一小時下午花一小時在那呆著。
只能拿書去看準備實習了。晚上回學校才能刷題。