openCV AdaptiveThreshold и Otsu Threshold. ROI

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

 cvSmooth( temp, dst,CV_GAUSSIAN,9,9, 0);

на исходном изображении только тогда я использовал порог.

Могу ли я что-то настроить с помощью метода Оцу, чтобы сделать изображение лучше, как адаптивный порог? И еще одна вещь, есть некоторые нежелательные остатки отпечатков пальцев на стороне, есть идеи, как я могу избавиться от них?

Я прочитал из журнала, что, сравнивая процент белых пикселей в определенном квадрате, я могу получить ROI. Однако этот метод требует, чтобы у меня было пороговое значение, которое можно найти с помощью метода OTSU, но я не слишком уверен насчет AdaptiveThresholding.

cvAdaptiveThreshold( temp, dst, 255,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,13, 1 );

Результат:

оригиналадаптивный

cvThreshold(temp, dst, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

оригинал
Оцу

7

Решение

Чтобы избавиться от нежелательного фона, вы можете сделать простую операцию маскировки. Функция порога Otsu обеспечивает пороговое значение, которое отрезает изображение переднего плана от фона. Используйте это пороговое значение, чтобы создать двоичную маску, итерируя по всему входному изображению, проверяя, превышает ли текущее значение пикселя пороговое значение, и устанавливая его равным 1, если оно истинно, или 0, если оно ложно.

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

3

Другие решения

Попробуйте разделить изображение на области интереса и применить отсу индивидуально, а затем объединить их. Стратегия разделения может быть статической или динамической в ​​зависимости от максимальной освещенности.

1