Как проверить цветовую однородность региона? - PullRequest
0 голосов
/ 09 января 2012

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

Поиск цветового пространства, которое сможет свести на нет эту вариацию, если разница в цвете слишком мала для восприятия. Пробовал цветовые пространства L a b и HSV. Все они работают в нескольких случаях, но часто в местах одинакового цвета появляются ложные цвета. Есть предложения?

Спасибо.

РЕДАКТИРОВАТЬ: (образцы изображений из набора данных ICDAR. Выполнение тестов на них)

Hue channel from HSV

Original RGB image

1 Ответ

3 голосов
/ 10 января 2012

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

Шаг 0:

Работайте с соответствующим цветовым пространством.ВПГ и Лаборатория хороши.RGB определенно плох.

Шаг 1:

Используйте статистику, устойчивую к шуму.Рассчитайте среднее значение и межквантовый диапазон вместо средней и среднеквадратичной ошибки.Вы можете найти другую статистику, которая устраняет выбросы.Существуют различные способы (ни один из которых не совершенен), чтобы найти и устранить несколько выпадающих значений в распределении.wiki robust statistics

Шаг 2:

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

Но вы можете настроить свой порог, основываясь на некотором априорном знании: возможно, это нормально, чтобы найти ложные негативы, но вы не хотите пропустить позитив, поэтому вы перемещаете порог к негативам и т. Д..

...