WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  graphics, images, and... help!!!

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   graphics, images, and... help!!!
Kolya Bokov опубликован 11-09-2001 02:06 MSK   Click Here to See the Profile for Kolya Bokov   Click Here to Email Kolya Bokov  
Здарова, all!
Помогите пожалуйста сделать следующую вещь:
идёт чтение картинки, тра-ля-ля, ну в билдере например сделать :) Нудык вот... Нужно вот что:
программа должна воспроизвести изображение
графического файла (.bmp, .jpg, и т.д.) в виде машинной
вышивки.Сложность заключается в
нахождении оптимального алгоритма по которому будут
нарастать швы и заполняться пространства.

Т.к. нет общепринятого алгоритма или он нам просто
неизвестен, то необязательно (на первой стадии), чтобы
конечный итог (изображение графического файла) был сделан
как его бы сделал профессиональный цифрователь. Но,
результат должен быть приблизительно схожим.
есть у кого-нибудь какие-нибудь идеи? Если есть - помогите пожалуйста, буду очень признателен...
Вот например один из волнующих меня вопросов: как прочитать и выделить цвета в открытой и запихнутой в массив картинке? Уцветов есть свои коды или как это сделать? Ведь нужно перебирать массив в поиске определённого цвета, затем его выводить его на вышивке, затем дальше... и тд... так ведь?:)
очень сложно, или невозможно делать шов для каждого единичного пикселя... что вы об этом думаете? и как вы понимаете значение слова "шов"?:)
заранее огромное спасибо, надеюсь на вашу помощь!
Kostik опубликован 11-09-2001 06:21 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     

Есть очень не плохая библиотека Intel.
Здесь список её функций:
http://www.pentium.com.ru/software/products/perflib/ipl/iplapi.htm
Как скачать, думаю, разберёшься, если она тебе вообще станет интересна.
Возникнут реальные проблемы при реализацией - попытаюсь помочь.
Kolya Bokov опубликован 11-09-2001 23:34 MSK     Click Here to See the Profile for Kolya Bokov  Click Here to Email Kolya Bokov     
Ну я вроде скачал её... установил... а что нужно сделать в билдере, чтобы её подключить ? Я в Tools->Environment Options->Libraries->Libraries path её добавил директорию, где у неё находятся файлы *.lib
правильно ли я сделал?
если да, то как теперь к этому обращаться из билдера?
если нет, то как?
спасибо за помощь.
Kostik опубликован 12-09-2001 06:02 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     

В StdAfx.h добавлено #include <ipl.h>
Project > Settings > Link > в графе Object/library modules добавляеш (если там уже что-то вписано добавь пробел)ipl.lib.

В каталоге (что ты скачал)\Intel\plsuite\doc\ лежит файл iplqref.pdf почитай его (Для него нужен Acrobat reader).
Там есть немного выдержек из исходников.

Пробуй.

Kostik опубликован 12-09-2001 07:13 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     
Здесь лежит архив. Вес 13.8 МБ и файл Tmp.bmp .

ftp://ftp.tomica.ru/upload/Murka/
Внутри есть *.avi, которую прога крутит.
Это ренген-изображение сердца человека.
Жмём на паузу, затем на Sistola или Diastola (без разницы): получили текущий кадр потока *.avi файла. Причём желательно выбрать наиболее внятное изображение, иначе пурга (пока). Ставим три точки с очередностью как на tmp.bmp и жмём Build.
Если у проги крыжу не сорвало, то она должна при помощи фильтров и этих трёх точек найти сердце и выделить его.
Вроде была и запись результата в *.bmp, но гд-ето потерял. Сам попробуй разобраться.
Проект пока очень сырой и требует доработки, а меня попросили позаниматься другой темой, вот он уже несколько месяцев посто "лежит".

Kostik опубликован 12-09-2001 07:25 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     
Да!
Я пишу на Visual C++ 6.00 , поэтому
> Project > Settings > Link >
для тебя не актуальна.
Kolya Bokov опубликован 12-09-2001 15:53 MSK     Click Here to See the Profile for Kolya Bokov  Click Here to Email Kolya Bokov     
Project->Settings->Link это в Visual C++!
Слушай а где добавлять в билдере?
В Environment Options->Libraries...
или в project->options->linker???
спасибо за помощь.
Kostik опубликован 13-09-2001 05:09 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     

По теории: в Options->Libraries указываеш "где брать", ну а "что брать" тебе надо указать наверно в project->options->linker
Kolya Bokov опубликован 13-09-2001 18:28 MSK     Click Here to See the Profile for Kolya Bokov  Click Here to Email Kolya Bokov     
Слушай, ты не мог бы меня проконсультировать насчёт написания этой проги, которая в сабже?
Ну, например, как перевести в 16 цветов, как разделить цвета, записать как-то в массив и выводить по строкам определенные цвета?
Если поможешь, я тебя просто боготворить буду :)
Спасибо за помощь!
m_fox опубликован 14-09-2001 12:34 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
П№;%ец...
Не прыгай выше головы.
Научись сначала программировать немного, а потом уже приступай писать программы.
Полно литературы посвящено твоей проблеме.
Есть в конце концов наука "Обработка изображений".
Тут надо решать конкретные проблемы, а не учить программировать на С.
Kolya Bokov опубликован 14-09-2001 23:31 MSK     Click Here to See the Profile for Kolya Bokov  Click Here to Email Kolya Bokov     
Программировать на С/C++ я начал 2 года назад, так что кое-что умею :)
а вот материалов по обработке изображений и по моей конкретной проблеме к сожалению не встречал :( :(
m_fox опубликован 15-09-2001 12:16 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
Ну тогда что стоит твой вопрос: "как разделить цвета, записать как-то в массив и выводить по строкам определенные цвета?".
Какой-то бред.

UCHAR *image=new UCHAR[nWidth*nHeight]; // масив под изображение nWidth X nHeight, байт на пиксел
for(int i=nHeight;i>=0;i--)
{
for(int j=nWidth;j>=0;j--)
{
UCHAR c=image[i*nWidth+j]; // ал'я GetPixel(j,i);
switch(c)
{
case 1: // цвет с номером 1
break;
case 2: // цвет с номером 1
break;
}
}
}

delete[] image;

Это пример для выбора каждого пикселя из масива.
А чем тебе не понравился мой способ с GetNearestColor в одном из твоих прошлых вопросов??

Kolya Bokov опубликован 15-09-2001 14:23 MSK     Click Here to See the Profile for Kolya Bokov  Click Here to Email Kolya Bokov     
да, но как перевести изображение, например 256 цветов - в 16 цветов?
Kostik опубликован 15-09-2001 14:57 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     

Братан. Слушай сюда. Ну так ведь нельзя в самом-то деле.
Я же тебе всё дал. Ну прочитай *pdf, о котором я уже упоминал. Посмотри прогу, ссылку на которую я тебе тоже уже дал.
Там есть функции, с помощью которых можно и Репина с Левитаном в задницу запихать.

Да и вообще. Походи по сайтам с исходниками.
На sources.ru есть где-то даже список таких.
Если PURPE их подобающе оформил.
Уверяю тебя, там всё есть. И Америку открывать не надо.
"Звони" по конкретным вопросам. Успехов.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.