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

Выделение контуров объектов, слабоотличимых от фона

Recommended Posts

Посоветуйте, что делать.

Есть изображения (вложен a.png). На них капиляры. (более темные линии)

Форма их может быть любой.

post-6126-0-53240300-1354879652_thumb.pn

Нужно выделить их контуры.

Пробовал разные фильтры, пороговое и адаптивное пороговое преобразования. Результата нет.

Нужные контуры получаются с разрывами, и много лишних, ошибочных, контуров. (rezult.png)

post-6126-0-35820200-1354879644_thumb.pn

Проблема в фоне. Он не равномерный.

Где искать решение?

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


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

Максимум что я смог извлечь:

post-1-0-55663400-1354885208_thumb.jpg

Можно здесь поискать контуры, и отсеять по размеру.

Есть еще вариант применить к этому результату пирамиду.

	namedWindow("Src");

namedWindow("Res");

Mat src=imread("d:\\ImagesForTest\\capillars.jpg",1);
GaussianBlur(src,src,Size(5,5),3);
imshow("Src",src);

Mat res1;

vector<Mat> ch;
split(src,ch);
equalizeHist(ch[0],ch[0]);
equalizeHist(ch[1],ch[1]);
equalizeHist(ch[2],ch[2]);
merge(ch,res1);


src.convertTo(res1,CV_32FC3);

// Выравниваем фон
Mat blurred;
GaussianBlur(res1,blurred,Size(201,201),200);
res1-=blurred;
GaussianBlur(res1,blurred,Size(101,101),100);
res1-=blurred;
GaussianBlur(res1,blurred,Size(51,51),50);
res1-=blurred;
GaussianBlur(res1,blurred,Size(41,41),40);
res1-=blurred;

cvtColor(res1,res1,COLOR_RGB2GRAY);
normalize(res1,res1,0,1,NORM_MINMAX);

Mat res=res1.clone();
bilateralFilter(res,res1,5,50,150);

res1.convertTo(res1,CV_8UC3,255);
equalizeHist(res1,res1);

imshow("Res",res1);

waitKey(0);[/code]

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


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

Думаю, тебе надо немного ознакомиться с выравниванием яркости, автоконтрастом и т.д. Например здесь.

  • Like 1

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


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

Интересная pdf-ка.

Но я думаю автоконтраст тут мало поможет, т.к. при повышении контраста выделяется очень много шума.

Когда я пропустил изображение, приложенное в первом посте через лапласиан, на нем проявилась мелкая сетка (фотка с монитора?).

Сетку можно отфильтровать при помощи FFT.

Возможно тогда удастся лучше выделить детали.

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


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

Если поиграть с яркостью и контрастом в том же Фотошопе, то можно найти более менее удачные параметры, при которых объекты видны лучше. Также можно выровнять яркость на изображении. Или вычесть из исходного само себя, сглаженное гауссианов. Всё это даст мелкие улучшения, которые в сумме должны дать возможность провести пороговое преобразование.

Можно для тёмных частей изображения применять один порог, а для светлых другой (dynamic contrast).

Пока не могу формализовать, но мне кажется, что это правильный путь.

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


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

У меня выше гауссианами яркость и выравнивается. Но результат неважный.

Правда в той pdf-ке на размытое изображение исходное делится, а не вычитается.

Может быть если побольше с параметрами повозиться, то будет лучше.

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


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

... проявилась мелкая сетка (фотка с монитора?).

нет, фотография с видеокамеры.

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


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

Максимум что я смог извлечь:

out1.jpg

У меня выше гауссианами яркость и выравнивается. Но результат неважный.

Правда в той pdf-ке на размытое изображение исходное делится, а не вычитается.

Может быть если побольше с параметрами повозиться, то будет лучше.

Лучше делать так. Умное размытие с порогом (В фотошопе фильтр называется "пыль и царапины"). И делить (вычитание даёт плохой результат).

Думаю, тебе надо немного ознакомиться с выравниванием яркости, автоконтрастом и т.д. Например здесь.

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

Я сделал преобразование HSV Взял компоненту H-тон и тем самым избавился от всех шумов!!! Единственно что фон пришлось выровнить через размытие и деление.

Далее взял порог. Правда не обычный, а чуть по продвинутее(двойной мой любимый). Но обычный тоже хорошо работает.

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


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

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

Я сделал преобразование HSV Взял компоненту H-тон и тем самым избавился от всех шумов!!! Единственно что фон пришлось выровнить через размытие и деление.

Далее взял порог. Правда не обычный, а чуть по продвинутее(двойной мой любимый). Но обычный тоже хорошо работает.

Они позволяют не только более качественно отобразить, но и применять к картинкам обычные неадаптивные алгоритмы. Например, порог с константным значением.

Кроме того, твоё "фон пришлось выровнить через размытие и деление" и есть не что иное как применение такого алгоритма. Или ты что-то другое имел ввиду?

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


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

Я про: Яркость Констрастность , Кривые.

Они позволяют не только более качественно отобразить, но и применять к картинкам обычные неадаптивные алгоритмы. Например, порог с константным значением.

Они не анализируют картинку поэтому параметры к ним всё равно придётся подбирать. Даже если и анализируют то обычно эффекта не дают. Они ничего не знаю о нашей цели. А поэтому и не приносят желаемого результата.

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


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

Я про: Яркость Констрастность , Кривые.

Они не анализируют картинку поэтому параметры к ним всё равно придётся подбирать. Даже если и анализируют то обычно эффекта не дают. Они ничего не знаю о нашей цели. А поэтому и не приносят желаемого результата.

Я про это и говорю: ты выравниваешь яркость фона. Так? Если так, то зачем? Ведь по твоему выходит, что это бесполезно.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×