Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм выделения объектов из BMP 1bit файла, Алгоритм выделения объектов из BMP 1bit  
:(
    Опции темы
Pcrepair
Дата 29.8.2011, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день!
Вопросы к программистам, хорошо знающим работу с графикой
Исходные данные:
- есть test1.bmp (1bit, черный цвет -фон, белый цвет - значащий)
- размеры файла 1280х1024 пик (скрин экрана дисплея)
- в изображении есть символы и геометрические фигуры
Задача:
- сгенерировать BMP 1bit файлы 1280х1024 пик из исходного test1.bmp, в количестве равном общему числу символов и фигур в исходном файле
- в каждом новом файле должна быть только один символ или фигура, остальным присвоен цвет = черный
- фигурой или символом считать совокупность пикселей имеющих между собой контакт
- каждый новый файл должен иметь свое имя (координаты первого пикселя символа или фигуры - верхний левый, типа 23-57.bmp) и быть записн на ЖД в том же каталоге

Хотелось бы обсудить, с теми кто знает, алгоритмы работы такой программы
если есть примеры кода на ДЕЛФИ, хорошо бы взглянуть

Заранее спасибо всем!

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  test1.zip 9,11 Kb
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
VictorTsaregorodtsev
Дата 29.8.2011, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это не задача на графику, а задача на владение языком (или библиотекой VCL) и алгоритмами.

Если разрешено пользоваться классами из VCL - то можно не заморачиваться с побитовыми операциями (можно поставить TBitmap.PixelFormat=pf32bit и получить возможность работать с байтовой кодировкой цвета, когда цвету будет соответствовать не бит, а байт или четырехбайтовое целое - в общем, смотря как потом условие писать). И финальные битмапы можно создавать в памяти как многоцветные (чтобы не париться с битовыми операциями), а перед записью в файл менять им формат на однобитовый.

Ну а поиск фигур - это придётся писать вручную. Я в текущем проекте написал подобное без проблем (мне надо было удалять с картинки "кляксы", чей размер меньше заданного числа пикселов, а крупные кляксы-фигуры оставлять). 

Могу написать за денежку. Но я, правда, работаю с С++ Билдером, поэтому трансляция сишного кода в паскаль у меня затянется (и денежку я запрошу за суммарное время написания-отладки кода на С++ и последующий перевод кода на паскаль, с которым давно не работал). Билдер включает в себя дельфийский компилятор с паскаля, поэтому пас-код будет транслироваться без ошибок, я это проверю ;)
PM MAIL WWW   Вверх
Pcrepair
Дата 29.8.2011, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



классы не нужны, вся программа - форма с кнопкой, при нажатии
- кушает тестовый файл в том же каталоге
- генерирует файлы с символами и записывает их на диск
- ждет следующего нажатия на кнопку

это тестовая программа - кусочек,  для определения всего алгоритма обработки, там еще много чего будет 
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
VictorTsaregorodtsev
Дата 30.8.2011, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Pcrepair @  29.8.2011,  20:55 Найти цитируемый пост)
классы не нужны

Я не про то. Либо можно задействовать TBitmap (т.е. высокоуровневые возможности чтения картинки из файла и записи её в файл, возможности доступа к строкам пикселов через ScanLine,...) - либо все перечисленные в скобках вещи надо будет писать на чистом паскакале.

ЗЫ. Всё, больше не буду возвращаться в тему (в прошлом письме написал, что я сишник). Кому что надо - в личку или в мыло.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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