我有原始圖像和原始圖像的失真圖像。我想計算失真圖像的PSNR,以便我可以以dB爲單位測量失真。圖像類型是彩色的jpeg。彩色jpeg圖像的電源信號噪聲比(PSNR)
2
A
回答
5
我不知道你以前使用過,但你可以使用下面的代碼來計算改變圖像的PSNR:
I = imread('original.jpg');
Ihat = imread('changed.jpg');
% Read the dimensions of the image.
[rows columns ~] = size(I);
% Calculate mean square error of R, G, B.
mseRImage = (double(I(:,:,1)) - double(Ihat(:,:,1))) .^ 2;
mseGImage = (double(I(:,:,2)) - double(Ihat(:,:,2))) .^ 2;
mseBImage = (double(I(:,:,3)) - double(Ihat(:,:,3))) .^ 2;
mseR = sum(sum(mseRImage))/(rows * columns);
mseG = sum(sum(mseGImage))/(rows * columns);
mseB = sum(sum(mseBImage))/(rows * columns);
% Average mean square error of R, G, B.
mse = (mseR + mseG + mseB)/3;
% Calculate PSNR (Peak Signal to noise ratio).
PSNR_Value = 10 * log10(255^2/mse);
+0
爲什麼你需要在mseR,mseG和mseB公式中兩次寫入總和? – 2017-08-24 12:38:45
4
這裏是一個矢量實現:
mse = mean(mean((im2double(I) - im2double(K)).^2, 1), 2);
psnr = 10 * log10(1 ./ mean(mse,3));
它應該工作用於整數和浮點圖像,包括灰度和彩色圖像。
我使用以下PSNR定義:
相關問題
- 1. 給定的計算信號(信號+噪聲)和噪聲dBm
- 2. 使用MatLab計算信號:噪聲比
- 3. 識別低色彩的jpeg圖像
- 4. 創建噪聲圖像(隨機噪聲)
- 5. 噪聲kinect顏色(rgb)圖像
- 6. 如何在估計噪聲方差後製作噪聲信號
- 7. 同樣的噪聲信號,Matlab vs Python
- 8. 信號檢測當信號不存在時噪聲的方差
- 9. 圖像噪聲過濾
- 10. 閾值圖像和噪聲
- 11. 向圖像添加噪聲
- 12. 圖像信噪比(SNR)和圖像質量
- 13. Image雙精度圖像中的泊松噪聲(散粒噪聲)
- 14. 鑑於噪聲分佈情況,噪聲破壞圖像?
- 15. Android - 如何獲得無線信噪比(信噪比)?
- 16. 比較C中的真彩色像素
- 17. 如何從Python中的圖像獲取信噪比?
- 18. 如何測量圖像的峯值信噪比?
- 19. 使用OpenCV C++中圖像的信噪比
- 20. 噪聲圖像中的特徵檢測
- 21. 如何在Matlab中計算信號的信噪比?
- 22. 保存色彩空間的JPEG
- 23. java彩色圖像處理
- 24. 漸變彩色圖像
- 25. iPhone彩色圖像分析
- 26. LibTiff.Net彩色圖像轉換
- 27. 有源噪聲消除
- 28. 計算python中圖像列表的綠色信號強度與紅色信號強度的比率
- 29. 在C中生成白噪聲圖像#
- 30. 如何生成圖像噪聲頻率?
什麼是你已經嘗試過? – 2013-04-28 14:57:17