2015-12-17 81 views
2

我使用的Y平面如下直方圖處理後找到一個RGB圖像的熵值:差異熵值相同的圖像

i % the original image 

y1=rgb2ycbcr(i); 
y=y1(:,:,1);cb=y1(:,:,2);cr=y1(:,:,3); 
he1=histeq(y); 
r1=cat(3,he1,cb,cr); 
r1=ycbcr2rgb(r1); 

g1=rgb2gray(r1); 
e1=entropy(g1); 

現在我遵循的程序:

imwrite(r1,'temp1.jpg'); 
i2=imread('temp1.jpg'); 
g2=rgb2gray(i2); 
e2=entropy(g2); 

但現在e1e2是不同的。爲什麼是這樣?

回答

1

您正在使用JPEG壓縮標準將圖像r1寫入磁盤。 JPEG是有損,這意味着寫入磁盤的內容是而不是與最初存儲在內存中的內容相同。雖然圖像看起來在感覺上是相同的,但如果您比較相應像素之間的顏色值,則其中大部分會略有不同。這些細微差別是爲什麼JPEG標準能夠提供高壓縮比和更小的文件大小。

如果要確保寫入的文件與讀入的文件相同,請使用無損壓縮標準,例如使用PNG。因此,請更改目標文件名,以便使用PNG,而不是JPEG:

imwrite(r1,'temp1.png'); %// Change 
i2=imread('temp1.png'); %// Change 
g2=rgb2gray(i2); 
e2=entropy(g2);