Согласитесь с Пятачком в том, что если частота вашего паттерна существенно ниже, чем частота ваших дефектов, режекторный фильтр - это инструмент первого выбора.
Также согласитесь с тем, что если у вас есть несколько кадров с откалиброванными узорами бахромы, тогда у вас есть множество доступных вариантов. Последние версии Halcon имеют встроенные операторы дефлектометрии.
Для быстрого и грязного вы также можете использовать общую ориентацию вашего шаблона, используя прямоугольные ядра. Это эквивалентно ортотропному фильтру верхних частот.
read_image(imgInput, 'C:/Users/jpeyton/Documents/zzz_temp/FringePat_raw.jpg')
*smooth input image with mean using vertically oriented rectangular kernel
mean_image (imgInput, imgMean, 3, 15)
*subtract smoothed image from raw image to get local / high frequency residuals
abs_diff_image(imgMean,imgInput,imgAbsDiff, 1)
*threshold away background
threshold (imgAbsDiff, Regions, 8, 255)
Плавно с оператором среднего. Вертикально ориентированное ядро (в данном случае 3x15)
Вычтите сглаженное изображение из необработанного изображения и порогового значения:
Оттуда вы можете запустить оператор подключения и использовать региональные функции для дальнейшего выделения дефектов. Вы заметите, что этот подход не дает такого сильного сигнала для дефектов более низкой частоты (вмятин?).
Итак, компромисс заключается в том, что фильтр БПФ / ДПФ не использует направление шаблона и оставляет за собой краевые / гармонические артефакты. Подход с фильтром верхних частот (как указано выше) не будет чувствителен к дефектам, так как частота приближения / превышения интерференционной полосы.
person
Jim
schedule
17.12.2019