如何用C 語言計算一幅影象資訊的熵

時間 2021-08-11 23:16:35

1樓:匿名使用者

1、熵是描述區域的隨機程度的,p=σc*logc,c是灰度概率值,當影象均勻時,各灰度值的概率基本相等,熵可以達到最大

2、例程:

#include

#include

int i,j;

double rowsum(double table[4],int nrow)//定義第i行的邊際概率函式

{for(i=0;i

2樓:匿名使用者

給你一個參考吧,希望有幫助:

熵的計算c++程式

#include

#include

int i,j;

double rowsum(double table[4],int nrow)//定義第i行的邊際概率函式

return 0;

}double liesum(double table[4][4],int nlie)//定義第j列的邊際概率函式

return 0;

}void main()

,,,};

for ( i=0;i<4;i++)//輸出概率矩陣

cout<

rowsum(p,4);//呼叫函式輸出第i行的邊際概率

for (i =0;i<4;i++)

cout<

liesum(p,4);//呼叫函式輸出第j列的邊際概率

for ( j =0;j<4;j++)

cout<

// double p[4][4];

double h1=0.0;

for( i=0;i<4;i++)

double h2=0.0;

for( j=0;j<4;j++)

double h3=0.0;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

h3+=p[4][1]*(log(1.0/p[4][1])/log(2.0));

cout<<"x的熵:h(x)="<

cout<<"y的熵:h(y)="<

cout<<"(x,y)的熵:h(x,y)="<

cout<

cout<<"條件熵:h(x|y)="<

cout<<"條件熵:h(y|x)="<

cout<<"互資訊:i(x;y)="<

/* int size=4;//定義聯合概率p為維陣列

double *p;

p=new double[size];

for ( i=0;i<4;i++)//聯合概率計算

}for ( i=0;i<4;i++)//聯合熵的計算

}cout<<"聯合h(x,y)熵為"<

delete p; */}

3樓:

同意上面..........................

matlab如何計算一幅影象中某一灰度值的畫素個數

小丁創業 方法和詳細的操作步驟如下 1 第一步,開啟需要處理的影象,然後編寫以下 見下圖紅框標註處,轉到下面的步驟。2 第二步,執行完上面的操作之後,可以看到影象均衡的 見下圖,轉到下面的步驟。3 第三步,執行完上面的操作之後,畫出平衡 的直方圖,在平衡前後對 進行比較,見下圖。這樣,就解決了這個問...

MATLAB中怎樣提取一幅影象的RGB資訊,並且將結果輸出到矩陣中

阿瞞0超群 clc,clear,close im imread c users administrator desktop 123.png 讀取檔案路徑,im就是你要的舉證 1開啟影象 請選擇影象資料 str filepath filename image imread str 以對話方塊的形式選擇...

如何用C語言求長方形體積,c語言 計算長方體的體積

風若遠去何人留 長方形是平面幾何的概念,無法求體積,只有面積。只有立體幾何的長方體才可以求體積。對於長方形,要求面積,只需要將兩邊相乘即可。對於長方體,要求體積,只需要將三邊相乘即可。所以抽象到c語言的時候,這兩種計算,均是如果幾個數值,然後將所有數值相乘,最終輸出結果的過程。其中求面積需要輸入兩個...