2011-02-23 11 views
1

mapпикселей Очистка от карты

Мы имеем эту карту, мы должны использовать PHP, чтобы взять все оттенки синего ВНЕ, а также проценты. Проблема в том, что некоторые проценты имеют тот же цвет, что и границы, а в других случаях проценты идут на границу. Нам нужно использовать этот образ.

+3

Существует ли конкретная причина, по которой вам необходимо сделать это программно? Вы можете выполнить это в gimp или Photoshop, как через 5 минут. –

+0

Да, мы должны использовать PHP для этого. – codenamepenryn

+0

Согласен с @Spencer Hakim. Использование PHP займет больше времени и приведет к худшим результатам, чем открытие любого графического редактора и работа с ним. Если вы говорите об этом изображении, и это только, конечно. –

ответ

4

Не существует (AFAIK) очень простых путей.

Самый простой способ не дает вам хороших результатов: отдельные каналы и удалите небольшие компоненты.

Результат таков:

enter image description here

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

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

Здесь вы можете увидеть результат корреляции с номером «2»:

enter image description here

Один неверный «2» отождествляется (см вверху слева), поэтому более сложный подход может быть необходимых для общей процедуры.

В любом случае, я думаю, что подобные манипуляции намного превосходят то, что вы можете ожидать от К-12.

HTH!

Редактировать

согласно вашему запросу, некоторые детали о первом способе.

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

enter image description here

Вы держите третий (синий канал)

Затем вам нужно удалить мелкие компоненты. Существует много способов сделать это, возможно, самый простой из них получается из обнаружения соединения, например, в flood-fill algorithm, но вы просто измеряете компоненты, не заполняя их.
Основная (не оптимизированная) идея - перемещать каждый пиксель в изображении и подсчитывать, сколько пикселей «связано» с ним. Если число меньше порогового значения, вы просто удаляете весь набор. В большинстве библиотек обработки изображений все эти функции уже реализованы.

+0

Первый способ, которым вы действительно выглядели, действительно хорош, можете ли вы подробнее рассказать о том, как это было сделано? – codenamepenryn

+0

+1 для фотографий – Drew

0

Избавиться от затененных цветов должно быть легко.

Избавление от номеров более сложно. Я бы хотел:

  • Сделать таблицу поиска данных пикселя, связанных с каждым числом и знаком%.
  • При очистке области найдите номера (черные или белые) и очистите только точные шаблоны из таблицы поиска.
  • Восстановите границу между областями, добавив черный цвет между различными оттенками.

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

+0

Есть ли более простые способы? Это для курса 12 класса. – codenamepenryn

1

Для этого изображения, если вы открываете изображение в программном обеспечении для редактирования изображений, конвертируйте режим из индекса в истинный цвет (RGB), а затем цвет уклоните изображение целиком от желтого цвета (RGB: 255,255,0), вы ведете с черно-белым изображением, состоящим из контуров и цифр. (это также то, что синий канал выглядит как BTW)

Так что либо выбросьте красный и зеленый каналы, либо реализуйте алгоритм цветного уклонения.

Другой альтернативой является образцом каждый пиксель, а множество R & компоненты, которые пикселя G к значению B

редактирования: на самом деле, я забыл о белых чисел. чтобы получить их, наводнение fille наружного белого с rgb (0,0255), инвертировать все изображение, а цвет уклонения с (255,255,0), красный или зеленый канал теперь является недостающим числом. Наложите их поверх обработанного изображения с предыдущих шагов выше.

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