![]() |
|
Модераторы: Akina |
![]()
|
|
| jaroslaw |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.4.2007 Репутация: нет Всего: нет |
Добрый день всем!
Кто уже сталкивался, подскажите плз. Суть вопроса. Есть некий двухцветный BMP-файл. В нем контурно нарисована какая-то фигура. Фон белый, контур черный. Надо определить длину этой линии и площадь получившейся фигуры. вобще в результате должны получится сантиметры. Но! второй вопрос как их получить? Если как получить пикселы я еще понимаю более/менее, то как потом это перевести в сантиметры и квадратные сантиметры соответственно, я понять немогу. У кого какие идеи - выскажите плз. Спасибо |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 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 -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| jaroslaw |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.4.2007 Репутация: нет Всего: нет |
Спасибо!
формат файла уже начал смотреть, но с примером вобще супер! спасибо. Файл создает пользователь. Неизвестно что там будет. Неизвестно будет ли даже линия замкнута. Хотя если линия не замкнута будет проще - тогда считать площадь не нужно. |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Пример файла выложи...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| jaroslaw |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.4.2007 Репутация: нет Всего: нет |
||||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
То есть он у тебя еще и с тональностями?
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
А масштаб для перевода из пикселов в сантиметры возьми через WMI из свойств Win32_Display
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Ну тут ведь наверняка размеры пикселов не соответствуют размерам на экране в общем варианте. Проще было бы принять меру пиксель - мм^2. Остальное ИМХО неудобно...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Потому я и предлагаю отправиться в гости к WMI. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Я имел в виду, что возможно у рисунков есть масштаб . -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| jaroslaw |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 секунд файл с кодом и бмп-файлом примера |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Ты там хотел что? нули? там изначально и были нули... но
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| jaroslaw |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.4.2007 Репутация: нет Всего: нет |
ок. там были нули. согласен. Но как же мне отличить лишние нули, от тех нулей, которые обозначают закрашеные пикселы?
Там длинный код, поэтому сюда не стал копировать. Если надо вставлю в пост. |
||||
|
|||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
а зазиповать модуль и приаттачить к сообщению что, религия не позволяет?
ты размер картинки в пикселах получить можешь? можешь... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| jaroslaw |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.4.2007 Репутация: нет Всего: нет |
а одно сообщение назад я что сделал?
еще раз вот файл с кодом, (модуль, проект и т.п.) и бмп-файл с примером Добавлено через 5 минут
могу. и он у меня есть. Но! вот я читаю 16 байт, которые составляют первую строку картинки, и какие из них нужные мне? по идее первые? но это нетак. потому что в получившейся матрице лишние биты выходят и справа и слева. В примере это хорошо видно. Там у меня формируется текстовый файлик с массивом из единиц и нулей |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |