您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關C++ OpenCV如何實現卡片截取的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
代碼演示
我們再新建一個項目名為opencv--qiebian2,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.
我們先把上一節課的代碼拷貝過來,因為也用到了
先是閉操作,尋找輪廓等,下面就是我們的重點
獲取最大矩形
首先要查找輪廓內最大的長度和高度的矩形,用于判斷是不是我們要找的卡片,把最大的寬度和高度記錄在了maxw和maxh兩個變量里面
定位最大矩形進行旋轉
我們這里需要重新再遍歷一次,找到我們剛才獲取到的最大矩形進行旋轉處理
上面標紅框的是因為我原來的圖片是手機拍后橫向旋轉過的,需要再增加90度進行處理。
旋轉后的圖片進行截取
在新的圖片中重新走一遍尋找圖片的流程
加載圖片
轉為灰度圖
圖像高斯模糊
進行閉操作(先膨脹后腐蝕)
Canny邊緣提取
尋找輪廓
輪廓中查找符合要求的項
獲取上一步中對應項的最小矩形
從源圖像中截取最小矩形生成新圖片
上面我加上了try catch,因為在測試過程中也遇到過問題,后來通過輸出來跟蹤,所以加上了try catch,這里可以看一下,標準的C++的捕獲異常的寫法。
最后我們運行起來這個程序效果
感謝各位的閱讀!關于“C++ OpenCV如何實現卡片截取”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。