Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2013, 12:53   #1
Jencarlos
 
Регистрация: 05.01.2013
Сообщений: 4
Восклицание Пишу проект..

Всем доброго времени суток!

Пишу школьный проект по программированию.
Цель: все мы, так или иначе, имеем дело с картами местности. Так вот, моя задача - перевод карты из обычного типа, назовём его так (например, bmp), в векторный.
А если конкретнее, то любая карта имеет такие коричневые полосы, скажем так, которые показывают возвышенность местности. Мне нужно, чтобы конечным продуктом было изображение, состоящее только из "отрезков", которые и будут показывать эту самую возвышенность данной местности.
Конечно, есть свои тонкости и подводные камни с этой задачей (например, не стоит забывать, что эти коричневые полосы зачастую пересекаются с другими полосами на карте, или, в основном, для каждой карты свой коричневый цвет..)
Поскольку раньше я никогда не имел дела с подобным заданием, а лишь писал различного рода программы, то тут нужна помощь, тем более, что в интернете я нашёл далеко не все ответы на мои вопросы..
Начнём с самого начала, ибо уже на этот вопрос я не могу себе ответить..
Как же нужно вообще загрузить изображение в паскаль? Что и как надо написать для этого?.. Условимся, что загружаю я изображение bmp.
Jencarlos вне форума Ответить с цитированием
Старый 05.01.2013, 14:12   #2
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Использование Паскаля обязательно? Может будет проще использовать тот же delphi?
maLoy*508 вне форума Ответить с цитированием
Старый 05.01.2013, 14:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как же нужно вообще загрузить изображение в паскаль?
Это смотря какой Паскаль (под какую платформу).
Если под DOS (TurboPascal, например), то примеры кода были на форуме (я лично публиковал). Но графика в DOS была весьма и весьма убогая.
я крайне настойчиво не рекомендую Вам связываться с MS DOS!!!

если же Паскаль под Windows (FreePascal/ Delphi) - то используя либо Win API (формат BMP "родной" для Windows), либо туеву кучу готовых библиотек выводить изображение можно буквально парой строчек кода (а то и вообще без кода, если в TImage в дизайнере загрузить изображение на этапе проектирования...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.01.2013, 21:08   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Для понимания задачи и формирования алгоритма решения, неплохо бы разобраться с терминологией:
Растровая графика - представление изображения набором пикселей различных цветов и интенсивностей этих цветов.
Форматы - bmp, tif, jpeg, gif, ...
ПО для обработки такой графики, как пример, Fotoshop, GIMP, ...

Векторная графика - представление изображения набором графических примитивов. Форматы - SVG, CDR, DWG, ...
ПО для обработки такой графики, как пример, CorelDRAW, Inkscape, ...

Линии равных высот - горизонтали или изогипсы.

Цитата:
Мне нужно, чтобы конечным продуктом было изображение, состоящее только из "отрезков", которые и будут показывать эту самую возвышенность данной местности.
Правильно ли понимается, что надо убрать только цветовую составляющую.
В этом случае карта останется растровой.
Или есть желание выполнить векторизацию - преобразовать изолинии в, скажем, сплайны и создать векторное изображение.

Ба! Ну и накатал ...
И все же ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 06.01.2013, 21:44   #5
Jencarlos
 
Регистрация: 05.01.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Это смотря какой Паскаль (под какую платформу).
Если под DOS (TurboPascal, например), то примеры кода были на форуме (я лично публиковал). Но графика в DOS была весьма и весьма убогая.
я крайне настойчиво не рекомендую Вам связываться с MS DOS!!!

если же Паскаль под Windows (FreePascal/ Delphi) - то используя либо Win API (формат BMP "родной" для Windows), либо туеву кучу готовых библиотек выводить изображение можно буквально парой строчек кода (а то и вообще без кода, если в TImage в дизайнере загрузить изображение на этапе проектирования...
Извините, что не пояснил. Имелся ввиду, скажем, Delphi.
Только вот раньше я совершенно не работал с подобными библиотеками и только в очень общих чертах представляю с ними работу..
Правильно ли я понимаю, что здесь имелось ввиду работа с формой, на которой, скажем, при нажатии кнопки и выборе нужного появляется требуемое изображение?
Тогда объясните, пожалуйста, эти магические пары строчек кода..
Jencarlos вне форума Ответить с цитированием
Старый 06.01.2013, 21:48   #6
Jencarlos
 
Регистрация: 05.01.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Правильно ли понимается, что надо убрать только цветовую составляющую.
В этом случае карта останется растровой.
Или есть желание выполнить векторизацию - преобразовать изолинии в, скажем, сплайны и создать векторное изображение.
Ну, для начала, нужно убрать абсолютно всё на этой карте, кроме нужных мне данных линий..
А дальше - как пойдёт
Jencarlos вне форума Ответить с цитированием
Старый 12.01.2013, 00:31   #7
Jencarlos
 
Регистрация: 05.01.2013
Сообщений: 4
По умолчанию

Эх... Жалко..
Я думал, помогут..
Jencarlos вне форума Ответить с цитированием
Старый 12.01.2013, 00:45   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вот, что-то писал, но получилась фигня.
Button1 - загрузить bmp картинку.
3 ползунка - составляющие красного, зеленого, синего цветов.
1 ползунок - максимальная разница по цветам у рассматриваемого пикселя.
Button2 - применить фильтрацию.
Вложения
Тип файла: zip карта.zip (1.97 Мб, 11 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишу браузер Mistin Общие вопросы Delphi 7 26.05.2011 13:30
Где найти исходники на Java( 1 проект - больше 1000 классов, 2 проект - больше 100, 3 проект - больше 10) Pti44ka Общие вопросы по Java, Java SE, Kotlin 2 09.09.2010 21:31
Пишу плеер! progressor Мультимедиа в Delphi 2 18.05.2009 17:14
Пишу программы Роман Радер Фриланс 3 01.12.2008 12:49
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21