Страницы

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

четверг, 23 января 2020 г.

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

#c_sharp #изображения


Декартова система координат. Черно белое изображение. 
Центр находиться самостоятельно, основываясь на данных по общей площади изображения
(центр тяжести).

Далее из центра нужно проводить лучи под углами от 0 до 360 с заданным шагом (например,
5 градусов). И для каждого луча, считать количество черных пикселей на нем.

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

Но данные какие то слишком неточные. Для изображения буквы "К" я получил почти одинаковые
значения количества пикселей на всех лучах. Подозреваю, что я считаю не правильно.
Делаю это на C# .NET.

Сама задача академическая. В чем суть. Строиться гистограмма, которая показывает
отношение количества пикселей к углу луча. Для изображений символов, эти гистограммы
субъективно похожи. Грубо говоря, для одного символа разных шрифтов - гистограммы будут
схожи.

Координаты центра тяжести находятся по формулам. 

Для координаты Х 


Для координаты Y


Функция A(). Значение равно 1 - если пиксель черный, 0 - если белый.

Посоветуйте что-то или подскажите решение.
    


Ответы

Ответ 1



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

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

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