1. 程式人生 > 其它 >opencv findcontours記憶體錯誤的解決過程

opencv findcontours記憶體錯誤的解決過程

技術標籤:影象處理與機器視覺opencvopencvfindContours記憶體錯誤

在使用findcontours函式過程中,出現莫名其妙的錯誤,造成程式無法執行,根據網上的所有解決措施做了一下實驗都沒有解決,後來發現一個令人尷尬的問題,現在大體說一下。

首先說一下網上給的方法,具體如以下幾個網址,大家可以自行檢視:
1、https://www.cnblogs.com/wangtianning1223/p/13588505.html
2、https://blog.csdn.net/fightingforcv/article/details/78423866
3、根據自己的VS版本重新編譯opencv;

但是在此過程中,按照網上的方法都是失效的,最後檢視opencv中關於此函式的說明:

void cv::findContours   (   InputOutputArray    image,
                            OutputArrayOfArrays     contours,
                            OutputArray     hierarchy,
                            int     mode,
                            int     method,
                            Point   offset =
Point() )

InputArray型別的image,即輸入的源影象,是Mat型別的8位單通道影象。本人的生成的雖然也是二值影象,但是經過分析其為3通道資料。可以利用cvtColor函式進行二值化的操作即可。