Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> анализ растровой картинки, определение периметра и площади 
:(
    Опции темы
jaroslaw
Дата 17.4.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Добрый день всем!

Кто уже сталкивался, подскажите плз.

Суть вопроса. Есть некий двухцветный BMP-файл. В нем контурно нарисована какая-то фигура. Фон белый, контур черный.
Надо определить длину этой линии и площадь получившейся фигуры.

вобще в результате должны получится сантиметры. Но! второй вопрос как их получить?
Если как получить пикселы я еще понимаю более/менее, то как потом это перевести в сантиметры и квадратные сантиметры соответственно, я понять немогу.

У кого какие идеи - выскажите плз.

Спасибо
PM MAIL   Вверх
cardinal
Дата 17.4.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Во первых изучай формат файла bmp (чтобы лучше представлять себе как там пикселы лежат)
http://forum.vingrad.ru/topic-45718/anchor...ry353238/0.html

Во вторых определи сам для себя размер пиксела. Ну допусти будет он у тебя мм на мм размером. Вот из этого и изходи. ИМХО так проще. Или двухцветный файл не ты создаешь? Кто тогда (как)?

Пример с bmp на VB6 есть тут
http://forum.vingrad.ru/base/CHto-takoe-st...afiya-2142.html


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
jaroslaw
Дата 17.4.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Спасибо!

формат файла уже начал смотреть, но с примером вобще супер! спасибо.

Файл создает пользователь. Неизвестно что там будет. Неизвестно будет ли даже линия замкнута. Хотя если линия не замкнута будет проще - тогда считать площадь не нужно.
PM MAIL   Вверх
cardinal
Дата 17.4.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Пример файла выложи...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
jaroslaw
Дата 17.4.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



PM MAIL   Вверх
cardinal
Дата 17.4.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



То есть он у тебя еще и с тональностями?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 17.4.2007, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



А масштаб для перевода из пикселов в сантиметры возьми через WMI из свойств Win32_Display


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 17.4.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ну тут ведь наверняка размеры пикселов не соответствуют размерам на экране в общем варианте. Проще было бы принять меру пиксель - мм^2. Остальное ИМХО неудобно...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 18.4.2007, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(cardinal @  17.4.2007,  19:49 Найти цитируемый пост)
наверняка размеры пикселов не соответствуют размерам на экране в общем варианте

Потому я и предлагаю отправиться в гости к WMI.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 18.4.2007, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Akina @  18.4.2007,  06:06 Найти цитируемый пост)
Потому я и предлагаю отправиться в гости к WMI. 

Я имел в виду, что возможно у рисунков есть масштаб .


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
jaroslaw
Дата 20.4.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Добрый день еще раз.

Почитал описание формата. Проанализировал пример. Огромное спасибо!
Написал код, который читает БМП-файл и загоняет рисунок в массив размером N*M,
где каждый элемент - пиксель.
Массив такой Mass (0 to BmpWidth*8-1, 0 to BmpHeight*8-1)
Рисунок у меня 1 разрядный, 100 на 100 пикселей.

Т.е. матрица получается размерами 128 на 128. Как я понимаю это из-за того, что одна строка картинки хранится в 16 байтах.
Массив 128 на 128 с рисунком получается элементарно.
В массиве содержаться единцы если бит черный, нули если белый (инвертирование я делаю).

Но! непонятно почему в лишних элементах матрицы (т.е. биты которые за границами 100 на 100) записаны единицы?

Просто теперь передо мной стоит задача проанализировать матрицу на предмет сколько там единиц, а я немогу это сделать, так как там откудато появляются лишние....

Я наверно путанно объяснил, могу выложить код и бмп-файлик, который анализирую.

Добавлено через 3 минуты и 40 секунд
файл с кодом и бмп-файлом примера 
PM MAIL   Вверх
Akina
Дата 20.4.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(jaroslaw @  20.4.2007,  14:47 Найти цитируемый пост)
непонятно почему в лишних элементах матрицы (т.е. биты которые за границами 100 на 100) записаны единицы?

Ты там хотел что? нули? там изначально и были нули... но 
Цитата(jaroslaw @  20.4.2007,  14:47 Найти цитируемый пост)
инвертирование я делаю



M
Akina
Цитата(jaroslaw @  20.4.2007,  14:47 Найти цитируемый пост)
файл с кодом и бмп-файлом примера
надо присоединять к сообщению, а не размещать черт те где. Исправьте.




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
jaroslaw
Дата 20.4.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Цитата

Ты там хотел что? нули? там изначально и были нули... но 


ок. там были нули. согласен. Но как же мне отличить лишние нули, от тех нулей, которые обозначают закрашеные пикселы?

Цитата

надо присоединять к сообщению, а не размещать черт те где. Исправьте.

Там длинный код, поэтому сюда не стал копировать. Если надо вставлю в пост.
PM MAIL   Вверх
Akina
Дата 20.4.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(jaroslaw @  20.4.2007,  15:14 Найти цитируемый пост)
Там длинный код, поэтому сюда не стал копировать. Если надо вставлю в пост. 

а зазиповать модуль и приаттачить к сообщению что, религия не позволяет?

Цитата(jaroslaw @  20.4.2007,  15:14 Найти цитируемый пост)
как же мне отличить лишние нули, от тех нулей, которые обозначают закрашеные пикселы?

ты размер картинки в пикселах получить можешь? можешь... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
jaroslaw
Дата 20.4.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



а одно сообщение назад я что сделал? smile

еще раз smile
вот файл с кодом, (модуль, проект и т.п.) и бмп-файл с примером

Добавлено через 5 минут
Цитата

ты размер картинки в пикселах получить можешь? можешь... 


могу. и он у меня есть. 
Но! вот я читаю 16 байт, которые составляют первую строку картинки, и какие из них нужные мне?
по идее первые?
но это нетак. потому что в получившейся матрице лишние биты выходят и справа и слева.
В примере это хорошо видно. Там у меня формируется текстовый файлик с массивом из единиц и нулей
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.