灰階值出現的機率 |
答題得分者是:ikk
|
913028
一般會員 ![]() ![]() 發表:30 回覆:41 積分:19 註冊:2008-06-24 發送簡訊給我 |
各位大大好:
以下是我的程式碼,主要是在一列上有40*40的區塊總共有13個,要在這每區塊裡計算0~255灰階值出現的機率,但是,所下的斷點去看,都是0的值,不知是哪寫錯了? 麻煩大大 感謝 [code cpp] int X=(M1 540)-(M1 20); int Y=(up2 40)-up2; int x_Get = 40; int y_Get = 40; int X_loop = X/x_Get; int Y_loop = Y/y_Get; int Left_Start =M1 20 ; int Top_Start =up2; BYTE r; int k,N,n[256]; float P[256];//計算每個灰階值的出現機率 N = x_Get*y_Get;//總像素點 for(k = 0; k < 256 ; k ) n[k] = 0; for(int j=0;j for(int iy=(Top_Start j * y_Get);iy<(Top_Start (j 1) * y_Get);iy ) for(int ix=(Left_Start i * x_Get);ix<(Left_Start (i 1) * x_Get);ix ) { r = GetRValue(Image2->Canvas->Pixels[ix][iy]); n[r] ; } for(k = 0; k < 256; k ) P[k] = n[k] / N; } [/code]
------
新手報到 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
913028
一般會員 ![]() ![]() 發表:30 回覆:41 積分:19 註冊:2008-06-24 發送簡訊給我 |
===================引 用 ikk 文 章=================== P[k] = (float)n[k] / N; ================================================= 感謝 終於可以了。 最後我要將這個套用到下列程式碼的運算式,結果會出現以下的問題視窗,主要是對每個區塊的0~255灰階的機率後,在將它們各自乘上自己Log2的數值函式,從0~255相加。 [code cpp] int X=(M1 540)-(M1 20); int Y=(up2 40)-up2; int x_Get = 40; int y_Get = 40; int X_loop = X/x_Get; int Y_loop = Y/y_Get; int Left_Start =M1 20 ; int Top_Start =up2; BYTE r; int N = x_Get*y_Get;//總像素點 float n[256],P[256]; int k; float tt; for(int j=0;j for (k=0;k<256;k ) { n[k]=0; } tt=0; for(int iy=(Top_Start j * y_Get);iy<(Top_Start (j 1) * y_Get);iy ) for(int ix=(Left_Start i * x_Get);ix<(Left_Start (i 1) * x_Get);ix ) { r = GetRValue(Image2->Canvas->Pixels[ix][iy]); n[r] ; } for(k=0;k<256;k ) { P[k] = (float) n[k]/N;//計算每個灰階值在影像中出現之機率 } tt=-(((float)P[k]*(float)Log2(P[k])) tt);//=>我的運算式 Memo2->Lines->Add(tt);//顯示數值 } [/code] 感謝
------
新手報到 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
913028
一般會員 ![]() ![]() 發表:30 回覆:41 積分:19 註冊:2008-06-24 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
913028
一般會員 ![]() ![]() 發表:30 回覆:41 積分:19 註冊:2008-06-24 發送簡訊給我 |
===================引 用 ikk 文 章=================== Log2(0) 必須先排除 ================================================= 終於用好了 ![]() 感謝ikk大大的 提示 果然Log2(0) =>先排除0才是關鍵 感謝
------
新手報到 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |