Маскировка данных изображения с использованием значений, генерируемых из гистограммы в OpenCV - PullRequest
3 голосов
/ 12 августа 2011

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

Основная идея состоит в том, чтобы найти цвет, заданный данными гистограммы и в определенном диапазоне, и если он найдет что-либо, сделать его черным. Если он ничего не найдет, то цвет будет белым.

Любой совет будет принята с благодарностью.

Контрольное изображение:

1-UP

Значения гистограммы:

Histogram

Изображение к маске:

Logo

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

То, что вы хотите, это замаскировать цвет в определенном диапазоне, это то, что вы должны попробовать с кодом, который я разместил здесь: В моем примере, он используется, чтобы сделать его прозрачным, если вы хотите сделать его черным, простопропустите шаг cvNot () ...

Создание полностью прозрачного цвета в OpenCV

Надеюсь, это помогло, Жюльен

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

  • 1) Преобразуйте ваше изображение в RGB -> HSV: cvtColor ()
  • 2) Создайте свою гистограмму: calcHist ()
  • 3) Найдите максимум в своей гистограмме оттенка: minMaxLoc ()
  • 4) Выберите пороги вокруг этого максимума: ваша функция
  • 5) Используйте их, чтобы выбрать только нужный вам цвет: inRange ()
  • 6) Поместите эту маску в черный цвет: ваша функция (очень простым способом было бы удалить все компоненты RGB из маски): ваша функцияна
0 голосов
/ 12 августа 2011

Попробуйте использовать подходы сопоставления шаблонов вместо гистограммы, например, нормализованная взаимная корреляция http://www.mathworks.com/products/demos/image/cross_correlation/imreg.html.

...