如何用matlab計算已知影象的熵

時間 2021-09-07 16:12:25

1樓:存在

function entr=yentropy(a)a=uint8(a); %這裡a為8位的單色影象或24為的rgb彩色影象

[m n l]=size(a);

entr=0;

for k=1:l

hi=zeros(1,256);

for i=1:m

for j=1:n

hi(a(i,j,k)+1)=hi(a(i,j,k)+1)+1; %求每種值的在影象**現的次數

endend

hi=sort(hi,'descend');

hi=hi./m./n; %求概率

en=0.0;

for i=1:256

if hi(i)>0

en=en-hi(i).*log2(hi(i)); %概率不為0 累加求熵

else

i=257; %否則停止

endend

entr=entr+en;

endentr=entr/l; %當l=1時a為單色影象;

當l=3時a為彩色影象,三個頁面的熵平均.

2樓:匿名使用者

什麼是“已經影象”?如果是一般的影象檔案,可以直接用imread讀進來就行的。在你給的原始碼中只要讓變數a儲存讀進來的資料就可以了,i.

不過這個程式寫的效率很低,雖然很容易看懂。

3樓:匿名使用者

資訊沒有丟失,是不會影響影象的資訊熵的~~~不能識別就換個格式就ok了~~

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

4樓:匿名使用者

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

2、例程:

#include

#include

int i,j;

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

{for(i=0;i

5樓:匿名使用者

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

熵的計算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; */}

6樓:

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

如何用matlab繪製帶引數的函式的影象?(剛學matlab

plot是繪製二維圖形的最基本函式,它是針對向量或矩陣的列來繪製曲線的。使用plot 函式之前,必須首先定義好曲線上每一點的x 及y 座標.常用格式為 1 plot x 當x 為一向量時,以x 元素的值為縱座標,x 的序號為橫座標值繪製 曲線。當x 為一實矩陣時,則以其序號為橫座標,按列繪製每列元素...

如何用MATLAB計算矩陣的行列式

佛問蘭 clear clcn0 20 e 1e0 r0 1 n0 p0 poly r0 t 1 for k 14 2 20 p p0 p n0 k 1 p n0 k 1 e r k roots p subplot 2,2,t plot real r k imag r k xlabel 根的實部 yl...

如何用matlab程式設計計算該組公式的離散點

題主給出的一組公式要求x i y i 值 離散點 通過分析可以按下列思路來實現。1 根據 0 的範圍,求出 theta 0 pi 20 pi n 50 r 5 u sqrt n 2 cos theta 2 sin theta mx n cos theta my u sin theta 2 根據x e...