Страницы

Поиск по вопросам

суббота, 16 марта 2019 г.

Определение количества пикселей определенного цвета на луче из центра координат

Декартова система координат. Черно белое изображение. Центр находиться самостоятельно, основываясь на данных по общей площади изображения (центр тяжести).
Далее из центра нужно проводить лучи под углами от 0 до 360 с заданным шагом (например, 5 градусов). И для каждого луча, считать количество черных пикселей на нем.
Как пробовал считать я. Луч брал за гипотенузу, и через тангенс угла - находил противолежащий катет. Проделывал эту операцию для каждого пикселя по оси Х, и на пересечении координат пикселей Х и величины катета - проверял черный пиксель или нет.
Но данные какие то слишком неточные. Для изображения буквы "К" я получил почти одинаковые значения количества пикселей на всех лучах. Подозреваю, что я считаю не правильно. Делаю это на C# .NET.
Сама задача академическая. В чем суть. Строиться гистограмма, которая показывает отношение количества пикселей к углу луча. Для изображений символов, эти гистограммы субъективно похожи. Грубо говоря, для одного символа разных шрифтов - гистограммы будут схожи.
Координаты центра тяжести находятся по формулам.
Для координаты Х
Для координаты Y
Функция A(). Значение равно 1 - если пиксель черный, 0 - если белый.
Посоветуйте что-то или подскажите решение.


Ответ

Посмотрите картинку

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

Комментариев нет:

Отправить комментарий