CyMKuH
-
Количество публикаций
2 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем CyMKuH
-
-
Здравствуйте!
Недавно познакомился с библиотекой. Прошу помощи.
Есть широко известная функция cvFloodFill, выполняющая заливку смежных схожих пикселов с определенным порогом. Нужна функция, выполняющая только поиск таковых. Скажем, отмечающая область заливки маской, преобразующая ROI или сразу создающая дубликат области. В конечном счете хочется получить бинарную копию прямоугольника, ограничивающего искомую область, где "закрашиваемая часть" будет выделена одним цветом, а все остальное - другим.
Есть ли такая функция в библиотеке, или ее придется написать?
Я пока не очень осознал логику пакета и не хочу изобретать велосипеды. В документации и гайде от O'Reily не нашел.
И совсем ламерский вопрос. Для написания этой функции нужны тривиальные GetPixel(x,y) и SetPixel(x,y,v), их тоже нет. Нормально ли, что для доступа к данным автор предлагает пользовать эту конструкцию, или я что-то не уловил? о_О
float* ptr = (const float*)(mat->data.ptr + row * mat->step + cols);
Спасибо за внимание!
FloodMask
в OpenCV
Опубликовано · Report reply
Спасибо за ответ! Помогло. Ниже примерный код, если кому пригодится.
Библиотека действительно удобна и довольно продумана. Вот только столкнулся с одной неожиданностью - после cvFloodFill граничная рамка матрицы с маской закрашивается цветом 1. Чтобы найти края выделяемого объекта, приходится сначала закрашивать ее обратно черным 0.