收到一封email,有個學員求助
去除衣服上紋理的干擾,而後提取衣服上徽章的邊緣的方法。
我想他確定是個很努力上進的boy,在求助之前也許已經試過各類方法,經過二值化不斷的調試閾值,
尋找各類邊緣檢測的算子不斷的實驗,或者更高階的用FFT試圖去掉背景等等,我想起了我剛入門的時候
那股不達目的毫不罷休的狠勁,在網絡上或者圖書館搜索相關的書籍,
試圖找到答案,
然而受制於自身知識體系的不完善,
並不能獲得滿意的答案。因此在忙完手頭的工做,我認真的看了他的需求,並回復了幾種方法供其參考。
來信:
小馬哥,你好!
我是Halcon的初學者,看了大家的免費視頻和實戰講解系列視頻。如今有個問題想向你尋求一下幫助,我想去除衣服上紋理的干擾,
而後提取衣服上圖案的邊緣,請問該如何作?但願你能在百忙之中抽空給予我一些幫助,十分感謝!
回信:
你好:
工做繁忙,今日才得空仔細看你的郵件。
1、不知道你提取一幅徽章的目的,若是是要匹配定位會有更好的方法,這裏先不說此。
2、根據你的需求列出幾種方法供你參考
2.1 省力的方法,藉助halcon的邊緣提取
edges_color_sub_pix
這種方法須要設置合適的 filtersize 和 low high閾值
下圖是edges_color_sub_pix(Image, Edges, 'canny', 15, 40, 60)的效果
2.2 加大點難度,放入一些本身的思考進去
對於彩色圖像,彩色信息是一個不容忽視的有利條件。
咱們將其轉入 HSV空間 取 S通道 ,至於何爲HSV ,爲什麼取S通道,可看個人基礎課程。
decompose3(Image, r, g, b)
trans_from_rgb(b, g, r, h, s, v, 'hsv')
S通道是這樣的
作簡單二值化
2.3 相對於2.2思考的更多一些
從rgb通道入手,根據通道運算去除紋理。
放入halcon中處理的效果,代碼爲
sub_image(b, g, ImageSub, 1, -40)
二值化後結果
至於用FFT去除紋理的方法太過繁瑣,效果有不會好,不作介紹。
最後但願你本身體會、琢磨,世上無難事只怕有心人
祝:工做順利,身體健康
小馬_xiao
關注微信:halconhub,每日獲取halcon精華文章