用halcon提取衣服徽章

收到一封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精華文章
 
 





附件列表

相關文章
相關標籤/搜索