我有原始圖像和原始圖像的失真圖像。我想計算失真圖像的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. 與OpenCV中的色彩噪聲的圖像比較?
- 2. 使用MatLab計算信號:噪聲比
- 3. 識別低色彩的jpeg圖像
- 4. 創建噪聲圖像(隨機噪聲)
- 5. 噪聲kinect顏色(rgb)圖像
- 6. 如何在估計噪聲方差後製作噪聲信號
- 7. 用LinkSprite JPEG彩色攝像機拍照
- 8. 增加噪聲的信號在python
- 9. 同樣的噪聲信號,Matlab vs Python
- 10. 爲什麼Perlin噪聲圖像比其他圖像更平滑?
- 11. 平均爲2個噪聲信號
- 12. 信號檢測當信號不存在時噪聲的方差
- 13. 在噪聲信號中獲得所需的輸入信號snr
- 14. 圖像噪聲過濾
- 15. 向圖像添加噪聲
- 16. 閾值圖像和噪聲
- 17. 噪聲圖像壓縮
- 18. 圖像信噪比(SNR)和圖像質量
- 19. 試圖用噪音,numpy和圖像創建噪聲圖像
- 20. wkhtmltoimage呈現透明PNG的彩色噪聲
- 21. Image雙精度圖像中的泊松噪聲(散粒噪聲)
- 22. matlab中音頻信號的PSNR
- 23. 將灰度圖像保存爲彩色JPEG
- 24. 從圖像中去除胡椒噪聲和鹽噪聲
- 25. 鑑於噪聲分佈情況,噪聲破壞圖像?
- 26. Android - 如何獲得無線信噪比(信噪比)?
- 27. 用Matlab創建一個黃色的噪聲圖像
- 28. 比較C中的真彩色像素
- 29. 使用Perlin噪聲生成高度圖噪聲返回黑色位圖
- 30. 如何通過電話號碼彩信
什麼是你已經嘗試過? – 2013-04-28 14:57:17