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樓: 同意上面.......................... plot是繪製二維圖形的最基本函式,它是針對向量或矩陣的列來繪製曲線的。使用plot 函式之前,必須首先定義好曲線上每一點的x 及y 座標.常用格式為 1 plot x 當x 為一向量時,以x 元素的值為縱座標,x 的序號為橫座標值繪製 曲線。當x 為一實矩陣時,則以其序號為橫座標,按列繪製每列元素... 佛問蘭 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... 題主給出的一組公式要求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...
如何用matlab繪製帶引數的函式的影象?(剛學matlab
如何用MATLAB計算矩陣的行列式
如何用matlab程式設計計算該組公式的離散點