圖像比對問題....... |
尚未結案
|
639673
一般會員 發表:36 回覆:4 積分:8 註冊:2005-05-15 發送簡訊給我 |
剛剛我在以前的文章發現這段~想問一下若我有兩張bmp圖~檔名是123和124~要進行比對~那我要如何融入這個程式ㄋ
for ( y = 0; y < MainForm->Image1->Height; y ) //統計兩個Frame像素質
{
ptr1 = (Byte *)Bmp->ScanLine[y];
ptr2 = (Byte *)Bmp2->ScanLine[y];
for ( x = 0; x < MainForm->Image1->Width; x )
{
a_pic = (ptr1[x*3] ptr1[x*3 1] ptr1[x*3 2])/3;
b_pic = (ptr2[x*3] ptr2[x*3 1] ptr2[x*3 2])/3;
aval[x][y] =a_pic;
bval[x][y] =b_pic;
}
}
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
639673 您好: 您貼上來的程式敘述並不完整,其中有些變數的宣告沒有貼上來,無法進行完整的測試,因此僅就問題作回覆,無法確保運作結果是否正確? 將兩個圖檔代入該段程式的寫法大致如下,請參考:
Graphics::TBitmap *Bmp1 = new Graphics::TBitmap(); Graphics::TBitmap *Bmp2 = new Graphics::TBitmap(); Bmp1->PixelFormat = pf24bit; Bmp2->PixelFormat = pf24bit; Bmp1->LoadFromFile("c:\\123.bmp"); Bmp2->LoadFromFile("c:\\124.bmp"); Byte *ptr1; Byte *ptr2; for (int y = 0; y < Bmp1->Height; y ) { ptr1 = (Byte *)Bmp1->ScanLine[y]; ptr2 = (Byte *)Bmp2->ScanLine[y]; for (int x = 0; x < Bmp1->Width; x ) { a_pic = (ptr1[x*3] ptr1[x*3 1] ptr1[x*3 2])/3; b_pic = (ptr2[x*3] ptr2[x*3 1] ptr2[x*3 2])/3; aval[x][y] =a_pic; bval[x][y] =b_pic; } } if (memcmp(aval, bval, sizeof(bval[x][y]) ) == 0) ShowMessage("同一張圖形"); else ShowMessage("不同圖形"); delete Bmp1; Bmp1 = NULL; delete Bmp2; Bmp2 = NULL;7 天天敲鍵盤 v 時時按滑鼠 8 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |