|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.03.2007, 18:54 | #1 |
Регистрация: 14.03.2007
Сообщений: 4
|
Сравнение картинок
Помогите мне написать программу сравнивающую картинки побитно, т.е. цвет одних точек с точками другой картинки...
Xpsp2, borland turbo c++ 2006... Искал через гугл, ничего не нашёл, СПАСИБО!!! |
30.03.2007, 15:54 | #2 |
Регистрация: 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?? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сравнение дат | 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 |