Метод сравнения изображений и шумоподавления

В настоящее время я делаю проект по выявлению сломанных или плохих продуктов из потока продуктов. Я пытаюсь использовать Opencv, чтобы извлечь края благоразумный. Ниже приведены границы, полученные от плохого продукта и образца продукта соответственно.

ПЛОХОЙ

Плохой

ХОРОШО

Хорошо

Края довольно четкие, но есть много маленьких областей бессмысленных пятен (шумов), поэтому кажется невозможным напрямую сравнивать эти две фотографии попиксельно. Я думал, смогу ли я продолжать вращать и сдвигать плохой продукт и найти лучший результат сравнения, такой как квадратная разница между пикселями. Однако с этими шумами этот метод кажется невозможным.

Поэтому я думаю, есть ли способ выделить самые большие связанные области или разделить эти связанные области на несколько изображений? Или, если существует лучший метод сравнения даже в этих условиях?

Большое спасибо!!!

0

Решение

Поэтому я пытаюсь объяснить одно возможное решение здесь. После того, как вы размыли свое изображение и получили изображение края, вы можете сгущать найденные края с помощью расширения. Если у вас есть набор X и структурированный элемент B, расширение можно понимать как набор точек x, покрытых B, когда центр B находится внутри X:

введите описание изображения здесь

введите описание изображения здесь

Если вы хотите прочитать больше об этой теме, я рекомендую вам П. Сойл: Морфологический анализ изображений.
Знайте, что ваши края толще и связаны. После findContours вы выбираете самый большой контур (вы должны сделать несколько более сложных тестов). Вот результаты, которые я получил:

Края после расширения:
введите описание изображения здесь

int dilation_type = MORPH_RECT;//MORPH_CROSS,MORPH_ELLISPE
int dilation_size = 2;
Mat element = getStructuringElement( dilation_type,Size( 2*dilation_size + 1,2*dilation_size+1 ),Point( dilation_size, dilation_size ));
dilate( src, erosion_dst, element );

Найденные контуры:
введите описание изображения здесь

Ограничительный прямоугольник самого большого контура:
введите описание изображения здесь

0

Другие решения

Других решений пока нет …