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

2值化的問題以及一些觀念問題

答題得分者是:justdo
我叫ㄚ丸
一般會員


發表:16
回覆:35
積分:10
註冊:2005-07-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-22 12:08:40 IP:140.129.xxx.xxx 未訂閱
各位影像處理前輩你們好 以下是我的程式碼一小段(使用OTSU找二值化閥值;並做二值化)  
 
int Pixel[640][480]; //存Pixel矩陣 int E[640][480]; int E2[640][480]; int Sum1[640][480],Sum2[640][480],T0; void __fastcall TForm1::Button6Click(TObject *Sender) { Byte *ptr1=0; Graphics::TBitmap*Image4BMP,*Image3BMP;//宣告2個指標 Image4BMP=Image4->Picture->Bitmap;//將圖存入第1個指標 Image3->Picture->Assign(Image4BMP);//將圖復製到Image3 Image3->Stretch=True; Image3BMP=new Graphics::TBitmap(); Image3BMP->Assign(Image4BMP);//將圖復製到第2個指標 for(int y=0;yHeight;y ) { ptr1=(Byte*)Image3BMP->ScanLine[y]; for(int x=0;xWidth;x ) { Pixel[x][y]=(Byte)ptr1[x]; E[x][y]=abs(Pixel[x 1][y]-Pixel[x][y]) abs(Pixel[x][y 1]-Pixel[x][y]); Sum1[x][y] =E[x][y]; //OTSU求閥值之分母 E2[x][y]=E[x][y]*Pixel[x][y]; Sum2[x][y] =E2[x][y]; //OTSU求閥值之分子 T0=Sum2[x][y]/Sum1[x][y] //求出OTSU之閥值 Edit3->Text=T0; if(Pixel[x][y]Picture->Assign(Image3BMP); delete Image3BMP; } 問題1.我這樣寫有錯嗎?跑出來的圖很怪 問題2.上面問的指令是做什麼呢? 問題3.Pixel[x][y]=(Byte)ptr1[x]; 這樣是否就可以把圖之像素存入Pixel 最後要感謝教導我的高手囉 功德無量唷 ^^
 
sorry 我插入
會一直跳到最後行 然後用剪貼的預覽又看不到
也不知道怎麼了  其他應該都符合規定吧    發表人 - 我叫ㄚ丸 於 2005/07/22  22:20:16
        
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-22 12:18:02 IP:210.68.xxx.xxx 未訂閱
您好:    PO程式碼的方式與版規說明請參考下面連結,煩請修改謝謝您的配合 >
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-23 08:28:50 IP:221.169.xxx.xxx 未訂閱
for(int y=0;yScanLine[y];
for(int x=0;x
這個時候 Pixel[x 1][y] 還沒有給他值,你只有計算到Pixel[x][y]而已    Repaint的意義嘛...  查一下HELP就知道了,當個程式員,要學會怎麼用help
至於Pixel[x][y]=(Byte)ptr1[x]; 的用法,站上已經很多相關討論
請以ScanLine當關鍵字搜尋一下本站文章     
        
系統時間:2024-03-28 22:50:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!