這篇文章給大家分享的是有關(guān)C++ OpenCV如何實(shí)現(xiàn)卡片截取的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、葉集網(wǎng)絡(luò)推廣、微信小程序、葉集網(wǎng)絡(luò)營銷、葉集企業(yè)策劃、葉集品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供葉集建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
代碼演示
我們再新建一個(gè)項(xiàng)目名為opencv--qiebian2,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.
我們先把上一節(jié)課的代碼拷貝過來,因?yàn)橐灿玫搅?/p>
先是閉操作,尋找輪廓等,下面就是我們的重點(diǎn)
獲取最大矩形
首先要查找輪廓內(nèi)最大的長度和高度的矩形,用于判斷是不是我們要找的卡片,把最大的寬度和高度記錄在了maxw和maxh兩個(gè)變量里面
定位最大矩形進(jìn)行旋轉(zhuǎn)
我們這里需要重新再遍歷一次,找到我們剛才獲取到的最大矩形進(jìn)行旋轉(zhuǎn)處理
上面標(biāo)紅框的是因?yàn)槲以瓉淼膱D片是手機(jī)拍后橫向旋轉(zhuǎn)過的,需要再增加90度進(jìn)行處理。
旋轉(zhuǎn)后的圖片進(jìn)行截取
在新的圖片中重新走一遍尋找圖片的流程
加載圖片
轉(zhuǎn)為灰度圖
圖像高斯模糊
進(jìn)行閉操作(先膨脹后腐蝕)
Canny邊緣提取
尋找輪廓
輪廓中查找符合要求的項(xiàng)
獲取上一步中對應(yīng)項(xiàng)的最小矩形
從源圖像中截取最小矩形生成新圖片
上面我加上了try catch,因?yàn)樵跍y試過程中也遇到過問題,后來通過輸出來跟蹤,所以加上了try catch,這里可以看一下,標(biāo)準(zhǔn)的C++的捕獲異常的寫法。
最后我們運(yùn)行起來這個(gè)程序效果
感謝各位的閱讀!關(guān)于“C++ OpenCV如何實(shí)現(xiàn)卡片截取”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!