Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

//Привет!! Т.к. в интернете я ничего не нашёл, то решил сам написать программу, скорее всего сдесь вышло много ошибок, и вопросов..
{
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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:50.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru