作者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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1570252158.A.B4D.html
1F:推 aria0520: 借串问一下 那假如是要检测部件是否缺少或错置的话呢? 10/05 19:49
2F:→ aria0520: 也就是非细微的瑕疵 10/05 19:50
3F:→ laytomall: 有看用机器学习的方案来检查缺少部件 10/05 19:58
4F:推 popen: 检测缺件较简单,你就拍缺件的背景当template 10/10 16:05
5F:→ popen: 再用template matching,假如缺件,match结果就会非常相似 10/10 16:05
6F:→ popen: 没缺件,match结果就会差异很大 10/10 16:06