Мне нужно найти (и нарисовать прямоугольник)/получить макс и минимальный радиус на изображении. (образцы ниже)
проблема заключается в том, чтобы найти правильные фильтры для изображения, которые позволят преобразовать Canny
или Threshold
, чтобы выделить капли. то я буду использовать findContours
для поиска прямоугольников.
Я пробовал:
-
Threshold
- с разным уровнем -
blur->erode->erode->grayscale->canny
-
измените тон изображения с различными "строками"
и ect. лучший результат - обнаружить кусок (20-30%) капли. и эта информация не позволяет рисовать прямоугольник. также, спасибо за тени, не связанные с точками blob, были обнаружены, что также мешает обнаружить область.
как я понимаю, мне нужно найти счетчик, который имеет жесткий контраст (не гладкий, как в тени). Есть ли способ сделать это с помощью openCV?
Обновление
случаи отдельно: изображение 1, изображение 2, изображение 3, изображение 4, изображение 5, изображение 6, изображение 7, изображение 8, изображение 9, изображение 10, изображение 11, изображение 12
Еще одно обновление
Я считаю, что у blob есть контрастная область на краю. Итак, я попытался сделать преимущество сильнее: я создал 2 gray scale Mat: A and B
, применил Gaussian blur
для второго - B
(чтобы немного уменьшить шум), затем я сделал несколько расчетов: идет каждый пиксель и найдите максимальную разницу между Xi,Yi
от "A" и соседними точками от "B":
и примените разницу max
к Xi,Yi
. поэтому я получаю что-то вроде этого:
Я на правильном пути? Кстати, могу ли я достичь чего-то подобного с помощью методов OpenCV?
Обновить Image Denoising помогает уменьшить уровень шума, Sobel
- выделить контуры, затем Threshold
+ findContours
и custome convexHull
получает что-то похожее, которое я ищу, но это не хорошо для некоторых капель.