兩差異影像相減後該如果再放到image上 |
尚未結案
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
我搜尋一些板上的文章看到有位大大有發表兩差異影像的問題
它是用以下的code而我是想要把它改成差異度很小的pixel就保留差異度大的pixel就將它的灰階值設成0可是我不曉得再計算完差異後該怎麼再將它放回image上顯示~希望各位大大教教我~
Graphics::TBitmap* BMP1 =new Graphics::TBitmap();
Graphics::TBitmap* BMP2 =new Graphics::TBitmap();
BMP1->PixelFormat=pf8bit;
BMP2->PixelFormat=pf8bit;
Byte *ptr1, *ptr2 = NULL;
int temp=0;
BMP1->Assign(Image1->Picture->Bitmap);
BMP2->Assign(Image2->Picture->Bitmap);
for (int y=0; y
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
上面你po的程式碼你都懂了嗎??
如果懂了應該不難 將處理後的d放入Image1
只要在後面加上
ptr1[x]=d; 放入Image2
ptr2[x]=d; 放入新的Image3
Graphics::TBitmap* BMP1 =new Graphics::TBitmap(); Graphics::TBitmap* BMP2 =new Graphics::TBitmap(); BMP1->PixelFormat=pf8bit; BMP2->PixelFormat=pf8bit; Byte *ptr1, *ptr2 = NULL; int temp=0; BMP1->Assign(Image1->Picture->Bitmap); BMP2->Assign(Image2->Picture->Bitmap); Graphics::TBitmap* BMP3 =new Graphics::TBitmap(); BMP3->PixelFormat=pf8bit; Byte *ptr3; BMP3->Assign(Image3->Picture->Bitmap); for (int y=0; yHeight; y ) { ptr1=(Byte*)BMP1->ScanLine[y]; ptr2=(Byte*)BMP2->ScanLine[y]; ptr3=(Byte*)BMP3->ScanLine[y]; for (int x=0; xWidth; x ) { int d=abs((int)ptr1[x]-(int)ptr2[x]); if(d>50) d=0; ptr3[x]=d; } } |
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
m58610你好~
我自己改一改後能放到image3上顯示了可是發現怎麼差異比較好像只做了一部分呢只做了紅色圈選起來的部分~可是我找不到那裡有錯誤希望你能幫忙~以下是我改過的code以及執行的畫面
Graphics::TBitmap* BMP1;
Graphics::TBitmap* BMP2;
Graphics::TBitmap* BMP3;
Byte *ptr1, *ptr2,*ptr3 = NULL;
BMP1=Image1->Picture->Bitmap;
BMP2=Image2->Picture->Bitmap;
BMP3=Image3->Picture->Bitmap;
for (int y=0; y
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
我現在將code改成這樣可是還是都只做了前面三分之一的處裡~後面都沒做不知為什麼~請各位大大幫我看一下還有那裡有問題嗎
Graphics::TBitmap* BMP1;
Graphics::TBitmap* BMP2;
Graphics::TBitmap* BMP3;
Byte *ptr1, *ptr2,*ptr3 = NULL;
BMP1=Image1->Picture->Bitmap;
BMP2=Image2->Picture->Bitmap;
BMP3=Image3->Picture->Bitmap;
for (int y=0; y
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
你的灰階圖是24bit還是8bit??
BMP2->PixelFormat=pf8bit;
這個意思是把圖片設定成8bit
我一般都用24bit
BMP2->PixelFormat=pf24bit;
這時用scanline的x座標會變三倍
詳細情形請爬一下文
你可以看我回文的紀錄
我有一個回文有一個示意圖 關於程式你改成下面試看看
Graphics::TBitmap* BMP1; Graphics::TBitmap* BMP2; Graphics::TBitmap* BMP3; Byte *ptr1, *ptr2,*ptr3 = NULL; BMP1=Image1->Picture->Bitmap; BMP2=Image2->Picture->Bitmap; BMP3=Image3->Picture->Bitmap; for (int y=0; yHeight; y ) { ptr1=(Byte*)BMP1->ScanLine[y]; ptr2=(Byte*)BMP2->ScanLine[y]; ptr3=(Byte*)BMP3->ScanLine[y]; for (int x=0; xWidth; x ) { int d=abs((int)ptr1[x*3]-(int)ptr2[x*3]); if(d>50) { ptr3[x*3 2]=0; ptr3[x*3 1]=0; ptr3[x*3]=0; } else { ptr3[x*3 2]=ptr2[x*3]; ptr3[x*3 1]=ptr2[x*3]; ptr3[x*3]=ptr2[x*3]; } } } BMP3->Assign(BMP3);發表人 - m58610 於 2005/02/10 03:34:35 |
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
嗯嗯~這樣真的就好了~好的~我會再去看看其它的文章~可是我想再請問一下ㄛ
就是我現在想改成沒灰階化的圖~直接用24bit的圖來相減~所以我把code改成這樣但是發現怎麼整個圖都糊掉了呢~想請你幫我看看
Graphics::TBitmap* BMP1;
Graphics::TBitmap* BMP2;
Graphics::TBitmap* BMP3;
Byte *ptr1, *ptr2,*ptr3 = NULL;
BMP1=Image1->Picture->Bitmap;
BMP2=Image2->Picture->Bitmap;
BMP3=Image3->Picture->Bitmap;
for (int y=0;y
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
關於d方面的最佳門檻可能要用try出一個最佳值
要看背景的明暗變化會不會太大來決定
關於我說用灰階後的值來表示
int gray1=ptr1[x*3 2]*0.299 ptr1[x*3 1]*0.587 ptr1[x*3]*0.114; int gray2=ptr2[x*3 2]*0.299 ptr2[x*3 1]*0.587 ptr2[x*3]*0.114; int d=abs(gray1-gray2); if(d>50) { ptr3[x*3 2]=0; ptr3[x*3 1]=0; ptr3[x*3]=0; } else { ptr3[x*3 2]=ptr2[x*3 2]; ptr3[x*3 1]=ptr2[x*3 1]; ptr3[x*3]=ptr2[x*3]; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |