Показать полную графическую версию : Площадь отсканированого....
aldehyde
02-05-2004, 11:26
Кто знет и может подсказать програмку или компонент програмы с помощью которого можна вычислить площадь отсканированого изображения фигуры, предмета и тп...
Значит вот, например я отсканировал предмет форма каторого может быть различна (треугольник и тд.) и вычеслить его (треугольника)площадь а не площадь рисунока который обычно после сканирования получается прямоугольный.
Что то вроде как отрисовать предмет на листе бумаги а потом весовым методом вычеслить его площу. Так делают......
aldehyde врят ли есть что-то готовое, т.к. для начала надо данный образ распознать, а потом уж вычислять его площадь.
aldehyde
02-05-2004, 21:38
говорят Автокадом можно.....
Что то вроде как отрисовать предмет на листе бумаги а потом весовым методом вычеслить его площу. Так делают...
Можно алгоритм триангуляции использовать. Т.е. разобьем нашу фигуру(уже отсканированную и переведенную в точки) на треугольнички. Координаты всех вершин нам алгоритм найдет. Ну, и посчитаем площадь каждого, а потом суммируем. Пока ничего более умного в голову не приходит.
Исправлено: bgg0408, 23:16 2-05-2004
Пусть цвет точки (серый) обозначат степень присутствия твоего предмета на бумаге. Получаем некоторое нечёткое множество. Его площадь - сумма всех цветов. При любом антиалиасинге всё считается замечательно, но если твой объект содержит рисунок, необходимо делать распознавание (что неоднозначно по своей природе). Можешь почитать Добеши "10 лекций по вейвлетам", но это не поможет. Если рисунок будет содержать белый квадрат, его площадь твоей программой учитываться на будет.
Для подтверждения последнего примера, попробуй напечатать на принтере белый квадрат внутри чёрного, повесь на холодильник, закрой один глаз и скажи, какую фигуру видишь: квадрат или квадрат с квадратной дырой.
hasherfrog
12-05-2004, 14:22
говорят Автокадом можно...
Рассчитать площадь фигуры по её координатам очень легко (Вы даже удивитесь, насколько легко). И Автокад всего лишь использует простейший алгоритм (даже при расчёте площадей фигур, образованных сложными сплайнами). А вот определить эти координаты на отсканированном изображении - это я не умею...
Вообще к задачам о распознавании образов у меня аллергия :(
ParsVita
20-05-2004, 12:15
Делал такое))))
давно, правда исходника может и не найду.
Главное, чтоб область, которую просчитать надо замкнутая была....
А еще надо знать реальный размер документа, который сканировался (рамки каки-е нибудь) или коэф. увеличения при сканировании и/или dpi при сканировании. Через этот dpi, и к-во пикселей внутри области можно узнать площадь исходника.... Там надо выщитать сколько пикселей приходиться на 1 см.квю (допустим) с учетом dpi... Задача поиска этого коэф отчень занимательная (я над ней часов 7 голову ломал). Может это и не лучший способ, но зато работает!
P.S. Сканировать исх. надо черно-белым, или переводить его в таковой, затем залить нужную область други цветом... и посчитать количество допустим синих пикселей...
basileus
20-05-2004, 16:47
IMHO, можно делать так -переводишь изображение в битмап-формат. Вводишь критерий принадлежности точки к фигуре по цвету. -дальше два вложенных цикла по строкам -столбцам с суммированием точек фигуры. конечную сумму множим на масштаб.
hasherfrog А кто сказал, что критерий будет прост. Сложность будет
совсем большой когда фигура может имет как дырки, так и совпадающие с фоном цвета. Тогда - только оконтуривание с последующей заливкой и см. выше.
Исправлено: basileus, 11:26 21-05-2004
aldehyde
20-05-2004, 18:08
Ребята, я очень Вам благодарен, но из меня програмист никакой если можна исходники или подробней а то... Сори, бестолочь:)
hasherfrog
21-05-2004, 09:20
basileus
Внутренняя часть области может оказаться неподходящей по цвету. Отчасти про это сказал ParsVita
ParsVita
24-05-2004, 11:52
Дома в старье покапаюсь - может найду, но не уверен. Исходник на Builder С++ 5.0 был.
aldehyde
25-05-2004, 00:23
ParsVita
буду очень благодарен!!!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.