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