图像 matlab 峰值信噪比 im2double double
来源:互联网 发布:厦门海关网络自主申报 编辑:程序博客网 时间:2024/05/24 04:40
PSNR 是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR 的分数无法和人眼看到的视觉品质完全一致,有可能 PSNR 较高者看起来反而比PSNR 较低者差。
这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响)。
(参考百度百科)
计算公式:
代码
- % 图像峰值信噪比PSNR、均方根误差MSE
- % By lyqmath
- % Dalian University of Technology
- % School of Mathematical Sciences
- function [PSNR, MSE] = psnr(X, Y)
- % 计算峰值信噪比PSNR、均方根误差MSE
- % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
- if nargin<2
- D = X;
- else
- if any(size(X)~=size(Y))
- error('The input size is not equal to each other!');
- end
- D = X-Y;
- end
- MSE = sum(D(:).*D(:))/prod(size(X));
- PSNR = 10*log10(255^2/MSE);
- function main()
- clc; close all;
- I = imread('rice.png');
- I1 = imnoise(I, 'salt & pepper');
- figure;
- subplot(1, 2, 1); imshow(I); title('原图像');
- subplot(1, 2, 2); imshow(I1); title('加噪声图像');
- [PSNR, MSE] = psnr(I, I1)
- % 图像峰值信噪比PSNR、均方根误差MSE
- % By lyqmath
- % Dalian University of Technology
- % School of Mathematical Sciences
- function [PSNR, MSE] = psnr(X, Y)
- % 计算峰值信噪比PSNR、均方根误差MSE
- % 如果输入Y为空,则视为X与其本身来计算PSNR、MSE
- if nargin<2
- D = X;
- else
- if any(size(X)~=size(Y))
- error('The input size is not equal to each other!');
- end
- D = X-Y;
- end
- MSE = sum(D(:).*D(:))/prod(size(X));
- PSNR = 10*log10(255^2/MSE);
总结
有一些方法中采用了分块计算PSNR等参数,用来得到更为有效地信息。也有的方法提出一些新的计算公式,当然这都是为了统计处图像处理前后的差异信息。
类似的,对于相近的公式,也可以如上做编码。
注:部分内容参考网络共享资料。
坑爹啊有木有!!!
尼玛图像要转换格式有木有!!!
a simple test will show you that
when you use im2double, it will convert your uint8 image from the
range of 0-255 into a double array in the range 0-1. In general, all
Image Processing Toolbox functions that take floating point arrays
want them in the range of 0 to 1. I find it kind of annoying but
that's the way it is. That's basically what "rescaling" means. So
this imdouble() function is there to help you get to what you might
need for later calls to Image Processing Toolbox functions. If you
use double() you would have to divide by 255 yourself if you needed
to. If you're doing your own custom functions then you can leave it
in the original range if you want.
Using im2double will rescale the data (if necessary) from your image.
Using double won't.
怪不得总出错!!!
铭记!!!
- 图像 matlab 峰值信噪比 im2double double
- PSNR峰值信噪比matlab实现
- matlab 计算图像的峰值信噪比PSNR以及均方根误差MSE
- Matlab评价图像质量,峰值信噪比,模糊系数的计算
- 实现灰度图像峰值信噪比计算
- 图像的峰值信噪比(PSNR)的…
- 图像的峰值信噪比(PSNR)的计算方法
- Matlab图像处理中im2double和double的区别
- 峰值信噪比 PSNR
- matlab 关于double和im2double
- matlab中double、im2double…
- matlab中double和im2double
- matlab---之permute,im2double,double
- matlab图像处理学习笔记(1):matlab中double、im2double、mat2gray区别
- 图像处理随笔之峰值信噪比(peak signal to noise ratio)
- 图像的峰值信噪比(peak signal to noise ratio, PSNR)
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- MATLAB图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- amlogic 编译 android
- 计算几何专项:UVa 11072
- ASP.NET MVC2 如何应用FCKeditor3.6.4
- PL/SQL Developer 如何连接远程 Oracle 数据库
- 浅析Android应用层次整体组件(四大组件)
- 图像 matlab 峰值信噪比 im2double double
- hdu1213-How Many Tables
- 线程池原理和实现
- [jQueryUI]
- apt-get
- tesseract训练字库
- mysql 常用命令
- 完全的自定义组件详细
- 动态规划专项intermediate:UVa 11600