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ū)域截取,選其中一部分進行處理,左上角起始坐標以及整個新圖片的大小 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ū)域截取,選其中一部分進行處理,左上角起始坐標以及整個新圖片的大小 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語言深入講解動態(tài)內(nèi)存分配函數(shù)的使用
這篇文章主要介紹了C語言動態(tài)內(nèi)存分配,C語言內(nèi)存管理相關(guān)的函數(shù)主要有realloc、calloc、malloc、free、柔性數(shù)組等,下面這篇文章帶大家了解一下2022-05-05C++編程之CString、string與、char數(shù)組的轉(zhuǎn)換
這篇文章主要介紹了C++編程之CString、string與、char數(shù)組的轉(zhuǎn)換的相關(guān)資料,希望通過本文能幫助到大家,讓大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-10-10C++?LeetCode0547題解省份數(shù)量圖的連通分量
這篇文章主要為大家介紹了C++?LeetCode0547題解省份數(shù)量圖的連通分量示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12C語言中g(shù)etchar和putchar的使用方法詳解
我們知道scanf函數(shù)可以從鍵盤輸入信息,而printf則可以輸出信息,同樣地,getchar和putchar也有同樣的功能,下面我來給大家介紹putchar和getchar的使用方法,需要的朋友可以參考下2023-08-08