線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1385
推到 Plurk!
推到 Facebook!

Stream和二維影像處理的問題

 
psp67101
一般會員


發表:5
回覆:10
積分:3
註冊:2005-05-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-27 23:18:17 IP:61.231.xxx.xxx 訂閱
請問要如何修改stream裡面的影像串流內容,由於stream的影像串流是一維的資料,請問要如何將其讀入到二維陣列再做處理,我這裡的處理指的是影像垂直和水平移動的影像處理,所以要將影像串流的資料讀入到二維陣列再處理才會比較方便,這是目前我所能想到的方法,或者有什麼比較方便方法可以將一維的資料裡面的影像 做上下左右的平移,而不用透過二維陣列做運動呢 謝謝
psp67101
一般會員


發表:5
回覆:10
積分:3
註冊:2005-05-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-28 09:24:06 IP:220.128.xxx.xxx 訂閱

下面是我的Code 紅色部分 可以改成用二維的方式呈現嗎,因為我的影像需要做平移處理 若只是一維的話 我每一行的起始點都會不一

Form2->Image1->Picture->Bitmap->SaveToStream(stream1);
stream1->Position=0;
Form3->Image1->Picture->Bitmap->SaveToStream(stream2);
stream2->Position=0;
stream1->SaveToStream(stream);
stream->Position=0;

ptr = (Byte *)stream->Memory;
ptr1 = (Byte *)stream1->Memory;
ptr2 = (Byte *)stream2->Memory;
for (int r=0; rSize; r =4, ptr =4, ptr1 =4, ptr2 =4) {
*(ptr)=(r%(Form2->Image1->Width*4*2) < (Form2->Image1->Width*4))?*(ptr1):*(ptr2); //H-direction
*(ptr 1)=(r%(Form2->Image1->Width*4*2) < (Form2->Image1->Width*4))?*(ptr1 1):*(ptr2 1); //H-direction
*(ptr 2)=(r%(Form2->Image1->Width*4*2) < (Form2->Image1->Width*4))?*(ptr1 2):*(ptr2 2); //H-direction
*(ptr 3)=(r%(Form2->Image1->Width*4*2) < (Form2->Image1->Width*4))?*(ptr1 3):*(ptr2 3); //H-direction
}

stream->Position=0;
Form1->Image1->Picture->Bitmap->LoadFromStream(stream);
Form1->DoubleBuffered=true;

bearmaster
一般會員


發表:36
回覆:45
積分:16
註冊:2004-05-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-01 12:11:34 IP:210.208.xxx.xxx 未訂閱

請參考下面的 code, 應該會有幫助...

[code]

//---------------------------------------------------------------------------
void vRGB24BufferDatatoY(BYTE *ubaDATABUF, int iWIDTH, int iHEIGHT, BYTE *ubYAVG)
{
long Ysum=0;
int x, y, pixel_line, pixel, buf_line;
BYTE B, G, R, Yval;

for (y=0; y {
buf_line= iWIDTH*y;
pixel_line=buf_line*3;

for (x=0; x {
pixel=pixel_line x*3;
B = *(ubaDATABUF pixel);
G = *(ubaDATABUF pixel 1);
R = *(ubaDATABUF pixel 2);
Yval = Y(R, G, B);
Ysum = Yval;
}
}

*(ubYAVG)=Ysum/(iHEIGHT*iWIDTH);
}

:

BYTE Yavg;
TMemoryStream *stream =new TMemoryStream();
Image1->PixelFormat=pf24bit;
Image1->SaveToStream(stream);
vRGB24BufferDatatoY((BYTE *)(stream->Memory) *((BYTE *)(stream->Memory) 10),
Image1->Picture->Bitmap->Width,
Image1->Picture->Bitmap->Height,
&Yavg);
[/code]

系統時間:2024-05-02 18:15:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!