兩個常見的OpenCV Error,opencverror

來源:互聯網
上載者:User

兩個常見的OpenCV Error,opencverror

本人在在調試過程中遇到的兩個常見的OpenCV Error,跟大家分享一下解決辦法:

第一個:OpenCV Error: Assertion failed <dims <=2 && data && <unsigned >i0 < <unsigned>size.p[0] && <unsigned >< i1,後面一大串,還是直接吧



經過調試發現發生這種錯誤的原因在於,你訪問構造矩陣時越界了,所以報錯,例如:

cv::Mat mat1 = cv::Mat::zeros(480,640,CV_8UC1);

mat1.at<uchar>(481,643)

你構造的mat1為640X480的矩陣,你卻訪問了643X481那就肯定會出錯,所以在每次訪問之前一定要 記得加上

if(i>=0 && i<mat1.cols && j>=0 && j< mat1.rows)

mat1.at<uchar>(j,i);

這樣 就可以保證你訪問的元素在這個行,列之內了。


第二個錯誤 OpenCV Error: Bad flage <parameter or structure field> <unrecongnized or unsupported arry typr>````



發生這種錯誤的原因在於你構造的矩陣行或者列為0,而你又要求顯示該圖片,故報錯:

例如:

cv::Mat mat2 =  cv::Mat::zeros(480,0,CV_8UC1);
cv::imshow("mat", mat2);
cv::waitKey(0);

就會在imshow這裡報錯。

肯定會想構造矩陣的時候肯定不會把行和列設定成0,可有可能你將其他的實參傳入的時候,這個參數本身就為0,稍不注意就會出錯,所以一定要養成良好的編寫代碼的習慣



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.