C++?OpenCV裁剪圖片時發(fā)生報錯的解決方式
從相機獲取圖像時直接處理會報錯,讀取本地視頻不會報錯
原代碼
g_mvCamera.GetImage(m_matCameraFrame); //開始OCR OCRImg();
將從相機捕獲的幀直接imwrite進本地,再在OCR中imread讀取本地路徑下的圖片,報錯消失
g_mvCamera.GetImage(m_matCameraFrame);
imwrite("img6.bmp", m_matCameraFrame);
//開始OCR
OCRImg();對本地視頻進行裁剪不會報錯,對相機實時獲取的幀進行裁剪會報錯
原代碼(部分)
g_mvCamera.GetImage(frame0); //對視頻進行區(qū)域截取,選其中一部分進行處理,左上角起始坐標(biāo)以及整個新圖片的大小 Rect rect; rect.x = 0; rect.y = 260; rect.height = 680; rect.width = 1260; frame = Mat(frame0, rect);
運行結(jié)果

仔細看一下變量窗口, 會發(fā)現(xiàn)是由于有時候程序并沒從相機中獲取到frame就對frame0進行傳值,就直接報錯了


所以修改代碼,使用do while循環(huán),確保frame0獲取到之后,再進行下一步處理
do {
g_mvCamera.GetImage(frame0);
} while (frame0.empty());
//對視頻進行區(qū)域截取,選其中一部分進行處理,左上角起始坐標(biāo)以及整個新圖片的大小
Rect rect;
rect.x = 0;
rect.y = 260;
rect.height = 680;
rect.width = 1260;
frame = Mat(frame0, rect);總結(jié)
到此這篇關(guān)于C++ OpenCV裁剪圖片時發(fā)生報錯的文章就介紹到這了,更多相關(guān)C++ OpenCV裁剪圖片報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 15種?C++?常見報錯原因分析
- c++報錯問題解決方案lvalue required as left operand of assignment
- 解決pip?install?dlib報錯C++11?is?required?to?use?dlib
- 如何基于C++解決RTSP取流報錯問題
- Python3安裝模塊報錯Microsoft Visual C++ 14.0 is required的解決方法
- 解決安裝mysqlclient的時候出現(xiàn)Microsoft Visual C++ 14.0 is required報錯
- C或C++報錯:ld returned 1 exit status報錯的原因及解決方法
相關(guān)文章
C語言深入探究sizeof與整型數(shù)據(jù)存儲及數(shù)據(jù)類型取值范圍
在main函數(shù)中,sizeof是可以正常工作的,但是在自定義函數(shù)中就不可以了。所以本文將為大家詳細講解一下關(guān)鍵字sizeof、整型數(shù)據(jù)存儲深入、數(shù)據(jù)類型取值范圍深入2022-07-07
Java C++ 算法題解leetcode1582二進制矩陣特殊位置
這篇文章主要為大家介紹了Java C++ 算法題解leetcode1582二進制矩陣特殊位置示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
Qt利用QSortFilterProxyModel代理實現(xiàn)自定義排序與聯(lián)合過濾
QsortFilterProxyModel類用來為model和view之間提供強大的排序和過濾支持。這篇文章將利用QSortFilterProxyModel代理實現(xiàn)自定義排序與聯(lián)合過濾,需要的可以參考一下2022-11-11

