![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Добрый вечер, товарищи.
Занялся написанием программы, которая анализирует кол-во графической информации на чертеже. Для друга делаю. Суть: есть условный сканер, который "идет "по чертежу и ищет "пересечения". То есть если цвет пикселя черный, то это пересечение. Но на чертеж могут быть "шумы" - когда его сканировали на хреновом сканере. Их надо отфильтровывать. Я делаю так: циклами иду по битмапу и смотрю пиксели. Когда нашел точку пересечения, смотрю вокруг- если хоть в 1 из 8 пикселей есть тоже черный пиксель- то это мы попали на линии и ее нужно засчитать. (см. картинку) Если вокруг нет- то это считается одиночной точкой, то есть шумом. Схема: Схема Проблема: не все линии вылавливает. А это критично. По теории, если линия идет допустим под неким углом, то она будет красить пиксели, лежащие вкруг(хотя бы один) На схеме: мы нашли пересечение в центральном пикселе. затем смотрим вокруг- начиная слева сверху. на схеме мы найдем пересечение еще и вверху над найденным 1 пикселем. и должны засчитать это линией. Но на практике почему не всегда так. Пропускает линии. Помогите пожалуйста. Если можете, укажите на ошибки в моем алгоритме или предложите свой. Необходимо забирать все линии (макс недобор - 0,5%)и фильтровать шумы(макс взятых шумов от всех - 0,5%). Пример чертежа |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 3 Всего: 13 |
пиксель сразу удаляется, или сначала идет проход по всему чертежу и только потом удаляются найденные?
|
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Они не удаляются вообще, просто если нашли ЛИНИЮ, то к общему кол-ву найденного добавили +1
|
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 3 Всего: 13 |
а покажи код где ты определяешь есть ли что-то вокруг обнаруженного пикселя
|
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
мой код:
|
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
давай уж целиком весь код и файл графический тестовый.
и не пиши код такими простынями. :( Это сообщение отредактировал(а) CROTishka - 13.11.2010, 12:38 |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Это и так почти весь код. за кадром только загрузка изображения и интерфейс, которые не нужны в условиях обсуждения данной проблемы.
Пример чертежа Что значит простынями? |
|||
|
||||
| Racer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Помогите мне плиз. Очень надо
|
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
пока по этому коду, который ты предоставил, я могу судить только то, что часть "шумов" он будет пропускать.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |