2016-09-28 2 views
0

Я работаю с извлечением данных из изображений с использованием Matlab, я использую функцию im2bw в серых изображениях для использования позже bwlabel, но порог не работает во всех изображениях, тем самым шум изображения и полученные данные не являются репрезентативными. Как я могу настроить порог для выявления этой проблемы? Функция graytresh не дает хорошего порога, существует какой-либо другой метод для устранения проблемы? Я работаю с большим количеством изображений (иногда несколько десятков тысяч), и я не могу работать один за другим. Изображения рыбы плавают, и мне нужно быть осторожными. Спасибо, что прочитали мою проблему !.Использование im2bw в итерациях с большим количеством изображений

Я использую graytresh в образах м.т. нравится эта http://imgur.com/TEaWF1y -Иногда искажения на снимках слишком много раздаточная с изображениями https://www.dropbox.com/sh/xve7oe84xcfj9yt/AACA0dYrK_m7o8Oie0KWWR-2a?dl=0 пускатели изображения, BIN изображения с искажением и м.т. изображений

+0

Попробуйте 'otsuthresh'. – NKN

+0

@NKN как 'otsuthresh' отличается от' graythresh'? Оба используют метод Otsu, поэтому результат, вероятно, будет точно таким же. – hbaderts

+0

@JVidal Итак, вы используете один и тот же порог для всех изображений? Как вы находите этот порог? Только на одном изображении? – hbaderts

ответ

0

Есть бесчисленное множество методов для определения бинаризации пороги. Это зависит от изображений. Общий ответ, который работает для любого изображения, не может быть задан.

Предлагаю вам выбрать типичный набор изображений и сравнить результаты наиболее распространенных методов порогового значения.

Возможно также, что глобальный порог не подходит вообще. Также попробуйте локальные методы определения порога.

Прочитайте это для широкого сравнения по методам пороговой: http://pequan.lip6.fr/~bereziat/pima/2012/seuillage/sezgin04.pdf

0

У меня была небольшая попытка найти рыбу, и, кажется, получить довольно хорошие результаты, используя нормализованное Green-Blue разница - это просто разница между компонентами «Зеленый» и «Синий», нормализованный до диапазона [0,1]. Шаги, которые я использую следующие:

  • сделать контрастную авто уровня натяжкой космических вещи лучше
  • вычислить нормированный зеленый-синий разница (зеленый-синий)/(зеленый + синий)
  • пороговое значение в 25%

Я просто использовал ImageMagick в командной строке. Он устанавливается на большинстве дистрибутивов Linux и доступен для OSX и Windows. Я уверен, что вы можете сделать только то же самое в Matlab:

convert fishy.jpg -auto-level -fx "(g-b)/(g+b)" -threshold 25% result.jpg 

enter image description here

Если бы я имел 10000 изображений делать, я хотел бы использовать GNU Parallel, чтобы получить все мои ядра процессора, работающих параллельно:

parallel 'convert {} -auto-level -fx "(g-b)/(g+b)" -threshold 25% results/{}' ::: fish*jpg 
+0

спасибо за совет, но мне нужно больше опыта :( – JVidal

Смежные вопросы