作者Schottky (順風相送)
看板C_and_CPP
標題Re: [問題] 有人做過粗糙表面的瑕疵檢測嗎?
時間Sat Oct 5 13:09:15 2019
※ 引述《popen (快樂的工作)》之銘言:
: 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
: 額外使用到的函數庫(
: Library Used): (Ex: OpenGL, ...)
: OpenCV
: 如標題,
: 如果在粗糙的金屬表面或粗糙的背景上面有
: 刮痕或有斑點,要檢測上面的刮痕或斑點,
: 有人做過類似的東西嗎?
: 我是先用gaussian blur降噪,再用二值化分割出缺陷,
: 但發覺還是有些缺陷分不出來,
: 不知有沒有比較強健的方法
光學檢測有很多種,像這種需要檢測細微瑕疵的應用,一般絕不會用 blur,
使用 blur 直接把原本看得到的細節給抹掉了,解析度直接下降一級,
那為什麼不一開始就買低解析度的相機和鏡頭就好了,多浪費一筆錢
想想如果你要檢測的瑕疵比正常背景點點還要細 (卻很長) 怎麼辦
blur 完什麼都看不見了。
因為你的敘述很模糊,也很難給什麼具體的建議,你自己大概也還沒有深思過這些,
總之設法去分辨正常的粗糙背景和不正常的瑕疵就是了。
可能是形狀 (正常背景是顆粒狀,刮痕是長條狀),
可能是光影 (打某角度某形式的光時凹凸不平會看不見,但污漬還是看得見)
也可能是陰影區塊面積,或者顏色,或者密度
光源、相機、鏡頭先弄好,否則軟體這邊也只是 GIGO (garbage-in garbage-out)
--
桃樂絲: 可是, 如果你沒有頭腦, 為什麼會說話?
稻草人: ㄝ, 我也不知... 但是有些人沒有頭腦也能說超~多話呢。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.71.10 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1570252158.A.B4D.html
推 aria0520: 借串問一下 那假如是要檢測部件是否缺少或錯置的話呢? 10/05 19:49
→ aria0520: 也就是非細微的瑕疵 10/05 19:50
→ laytomall: 有看用機器學習的方案來檢查缺少部件 10/05 19:58
推 popen: 檢測缺件較簡單,你就拍缺件的背景當template 10/10 16:05
→ popen: 再用template matching,假如缺件,match結果就會非常相似 10/10 16:05
→ popen: 沒缺件,match結果就會差異很大 10/10 16:06