怎麼做正規化 |
尚未結案
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
小慶 你好 我想這只是比例格放的問題吧!將5M拍下的影像,長寬各取1/5的像素就相當於距離1M所拍的影像,再將該影像縮放到目標像素即可以了。 如範例:(原圖代表5M的距離)
1.512/5=102:從原圖切割出102*102的影像出來(切割位置居中或靠左或靠右或任意)。
2.將102*102的影像放大到128*128 :(原圖代表4M的距離)
1.512/4=102:從原圖切割出128*128的影像出來。
2.將128*128的影像放大到128*128 (不用做) 若原圖代表4M的距離要取到相當1.5M的影像
1.512/4*1.5=102:從原圖切割出192*192的影像出來。
2.將192*192的影像縮小到128*128 這樣應該可以了解吧! _______________________________________
深藍的魚,祝您好運..........連連 發表人 - chance36 於 2004/10/16 03:40:08
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
不好意思....因為我是初學者所以程式有點不懂
我把我的程式以及圖檔傳上去請各位前輩幫我看看哪裡要改
....
ps:位神麼我的圖變這樣..
謝謝各位
程式:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *TheBitmap, *TempBitmap;
TempBitmap = new Graphics::TBitmap();
TempBitmap =Image1->Picture->Bitmap;
TempBitmap->PixelFormat = pf8bit;
Byte *ptr1;
int w,h,x,y,R,G,B;
w=Image1->Width/5;
h=Image1->Height/5;
//unsigned short int piexl[640][480];
int n=0;
for(int j=0;j
|
ben.huang
一般會員 發表:2 回覆:18 積分:4 註冊:2004-09-15 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
ben.huang
一般會員 發表:2 回覆:18 積分:4 註冊:2004-09-15 發送簡訊給我 |
嗯~~~建議你使用scanline 及指標的方式會比較簡單。程式如下
int i,j;
int r,g,b;
Byte *ptr11,*ptr21;
Graphics::TBitmap *A1 = new Graphics::TBitmap();
A1->LoadFromFile("2.bmp");
Graphics::TBitmap *B1 = new Graphics::TBitmap();
B1->PixelFormat=pf24bit;
B1->Height=150;
B1->Width=150;
B1->Palette=A1->Palette;
for(j=0;j
|
ben.huang
一般會員 發表:2 回覆:18 積分:4 註冊:2004-09-15 發送簡訊給我 |
完整程式如下 :
int i,j;
int r,g,b;
Byte *ptr11,*ptr21;
Graphics::TBitmap *A1 = new Graphics::TBitmap();
A1->LoadFromFile("2.bmp");
Graphics::TBitmap *B1 = new Graphics::TBitmap();
B1->PixelFormat=pf24bit;
B1->Height=150;
B1->Width=150;
B1->Palette=A1->Palette;
for(j=0;j
|
ben.huang
一般會員 發表:2 回覆:18 積分:4 註冊:2004-09-15 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
|
ben.huang
一般會員 發表:2 回覆:18 積分:4 註冊:2004-09-15 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
各位前輩...不好意思....小弟我前幾天鄭忙於其他事
所以沒辦法回信...
我正規化後變成以下的圖:
程式如下:
void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j; int r,g,b; Byte *ptr11,*ptr21; Graphics::TBitmap *A1 = new Graphics::TBitmap(); A1->LoadFromFile("c:\\5.bmp"); Graphics::TBitmap *B1 = new Graphics::TBitmap(); B1->PixelFormat=pf24bit; B1->Height=150; B1->Width=150; B1->Palette=A1->Palette; for(j=0;j<150;j++) { ptr11=(Byte*)A1->ScanLine[j]; ptr21=(Byte*)B1->ScanLine[j]; for(i=0;i<150;i++) { b=ptr11[i*3]; g=ptr11[i*3+1]; r=ptr11[i*3+2]; ptr21[i*3]=b; ptr21[i*3+1]=g; ptr21[i*3+2]=r; } } Image1->Picture->Assign(B1); delete A1; delete B1; }謝謝各位前輩的指導 正在努力學習的小弟... |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
|
ben.huang
一般會員 發表:2 回覆:18 積分:4 註冊:2004-09-15 發送簡訊給我 |
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |