Перейти к содержимому
Compvision.ru
<Elena>

Бинаризация части изображения

Recommended Posts

Здравствуйте!

Вот такой вопрос: есть ли в OpenCV возможность бинаризовать не все изображение, а некоторую его часть, используя маску?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно наложить маску через параметр mask который принимают некоторые функции, можно еще область интереса выделить интересующую прямоугольную область cvSetImageROI

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

cvThreshold, к сожалению, маску не принимает, и область интереса может быть не прямоугольная. Маска может быть, например, такой:

mask.bmp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно с помощью маски создать временное изображение, бинаризоовать его и наложить на исходное. Пойдёт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так я уже пробовала, но тогда гистограмма "уходит" за счет большой добавочной черной/белой/серой зоны, и порог Отсу считается неправильно. Рассчитывать его вручную - приятного мало, хотелось бы без этого обойтись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

I=I*!m+Ib*m;

где I - исходное изображение, m - маска , !m - инверсия маски, Ib - бинаризованное исходное изображение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Но заложена ли в OpenCV возможность рассчета порога для произвольной области, или придется переделать кусок из исходников/написать самой - вот этого я не знаю)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, кусок отсюда можно подстроить под свои нужды (не так-уж там и много строчек):

opencv\modules\imgproc\src\thresh.cpp

Такой встроенной функции нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×