Я думаю, вам придется использовать несколько различных вычислений функций, которые можно использовать для сегментации. На первом снимке круг распознается только интенсивностью, так что легко. На втором рисунке это в основном текстура, которая отличает край круга, в этом случае потребуется изображение функции на основе какого-то фильтра текстуры, например, вычисление локальной дисперсии приведет к скалярному изображению, которое может сегментировать круг. Если есть другие функции, которые определяют круг в других сценариях (разные цвета для фона переднего плана и т. Д.), Вам могут понадобиться другие явные фильтры, которые дают скалярную разницу для этих случаев.
Когда у вас есть скалярные изображения, где выделяются круги, вы можете использовать круговое преобразование Хафа, чтобы найти круг. Либо запустите его для разных размеров круга, либо измените его, чтобы определить диапазон размеров.
Если вы знаете, что будет только один круг, и вы знаете, какой шум будет присутствовать (вертикальные/горизонтальные линии и т. Д.), Альтернативный подход заключается в разработке более конкретного алгоритма, например. отфильтровать шум и найти центр тяжести и т. д.
Ответить на комментарий: Идея состоит в том, чтобы отделить алгоритм от независимых этапов. Я не знаю, как работает конкретный алгоритм, но предположительно он может принимать двоичное или полутоновое изображение, где высокие значения означают, что пиксельная часть круга и низкие значения пикселя не являются частью круга, настоящий алгоритм также должен давать некоторую величину достоверности на круг, который он находит. Этот настоящий алгоритм затем представлял бы некоторый этап (ы) в конце полного алгоритма. Затем вам нужно будет добавить первый этап, который должен генерировать изображения функций для всех типов ввода, которые вы хотите обработать. Для двух примеров это должно быть достаточно одного изображения интенсивности (просто градаций серого) и одного изображения, где каждый пиксель представляет локальную дисперсию. В цветовом случае сделать преобразование цвета использовать значение оттенка, возможно? Для каждого входного потока все изображения функций на более позднем этапе используйте значение достоверности для выбора наиболее вероятного кандидата. Если у вас есть другие неизвестные, которые необходимы вашему алгоритму в качестве входных параметров (размер окружности и т. Д.), Просто перебирайте возможные значения и убедитесь, что ваши последующие этапы возвращают значения доверия.
Могу ли я использовать OpenCV найти circles.As Я новичок в развитии обработки изображений alogrithm, я не мог в состоянии понять это шаги..пожалуйста, помогите мне в этом. Да. На первом изображении я хочу обнаружить диск внутри белого кольца. Во втором изображении я хочу найти только большой круг, который находится в центре изображения. (где вы могли видеть, что верхний край выглядит более резким/контрастным по краям, где нижняя часть выглядит так же, как и задний цвет земли - никаких изменений контраста на нижней поверхности) – MaccHere