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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2007, 18:54   #1
bloood
 
Регистрация: 14.03.2007
Сообщений: 4
По умолчанию Сравнение картинок

Помогите мне написать программу сравнивающую картинки побитно, т.е. цвет одних точек с точками другой картинки...
Xpsp2, borland turbo c++ 2006... Искал через гугл, ничего не нашёл, СПАСИБО!!!
bloood вне форума Ответить с цитированием
Старый 30.03.2007, 15:54   #2
bloood
 
Регистрация: 14.03.2007
Сообщений: 4
По умолчанию

//Привет!! Т.к. в интернете я ничего не нашёл, то решил сам написать программу, скорее всего сдесь вышло много ошибок, и вопросов..
{
Graphics::TBitmap *BitMat1=new Graphics::TBitmap();
Graphics::TBitmap *BitMat2=new Graphics::TBitmap();

//Так можно открывать файл???

BitMat1->LoadFromFile("c:\\ScreenShot.bmp") ;
BitMat2->LoadFromFile("c:\\ScreenShot1.bmp" );

int W=BitMat1->Width;
int H=BitMat1->Height;

struct rgb1
{
Float b1;
Float g1;
Float r1;
};
Float M1[W][H][3];

struct rgb2
{
Float b2;
Float g2;
Float r2;
};
Float M2[W][H][3];

for (int i=0;i<H;i++)
{
BitMat1->ScanLine[i];
for (int j=0;j<W;j++)
{
//в этом месте я незнаю, что писать. Как я думаю цвет каждой точки складывается из интенсивности каждого из 3-х основных цветов, т.е.
Int red; Int gre; Int blu;
//и каждой передãтся интенсивность в числовом виде

M1[i][j][0]=red[j]
M1[i][j][1]=gre[j]
M1[i][j][2]=blu[j]
}
}

for (int i=0;i<H;i++)
{
BitMat2->ScanLine[i];
for (int j=0;j<W;j++)
{
//в этом месте я незнаю как писать. Как я думаю цвет каждой точки складывается из интенсивности каждого из 3-х основных цветов, т.е.
Int red; Int gre; Int blu;
//и каждой должна передãтся интенсивность в числовом виде

M2[i][j][0]=red[j]
M2[i][j][1]=gre[j]
M2[i][j][2]=blu[j]
}
}

//Ну и далее сравнение
Int Y=0;
for (int i=0;i<H;i++)
{
if (Y=1)
break; MessageBox( NULL, "Неравны", "Error", MB_OK|MB_ICONERROR);
for (int j=0;j<W;j++)
{
if ((M2[i][j][0]/*как будет не равно??*/ M1 [i][j][0])&& (M2[i][j][1]/*как будет не равно??*/ M1 [i][j][1])&& (M2[i][j][2]/*как будет не равно??*/ M1 [i][j][2]))
Y=1;
}
}
}

// А ск-ко времени будет примерно сравниваться 2 картинки размерами 40 на 40??
bloood вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сравнение дат Geddar Общие вопросы Delphi 2 04.06.2008 19:09
Эффекты картинок Andrey1433 PHP 1 17.03.2008 02:07
WebBrowser без картинок DOLBY Компоненты Delphi 2 30.01.2008 17:03
Просмотр картинок Kocapb Общие вопросы C/C++ 1 25.11.2007 16:51
Нету картинок... BETONOMESHALKA Общие вопросы Delphi 1 27.07.2007 08:13