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