查找图像的标准偏差

时间:2016-11-29 16:16:27

标签: matlab standard-deviation

首先,我想找到这张图片的标准偏差:

enter image description here

其次,我想找到图像中所有线条的标准偏差。

但是在第一步,有些事情出错了我看到了:

>> A = imread('C:\Users\PC\Desktop\deneme.jpg');
>> std (A);
Error using var (line 65)
First argument must be single or double.

Error in std (line 38)
y = sqrt(var(varargin{:}));

line 65: error(message('MATLAB:var:integerClass'));
line 38: y = sqrt(var(varargin{:}));

如何解决此问题以及查找此图像中所有行的标准偏差的代码是什么?

1 个答案:

答案 0 :(得分:5)

错误非常明确:

  

第一个输入参数必须是单个或双精度。

这是因为A的类型为uint8std的输入必须是浮点(singledouble)。

所以:转换为double ,并可选择将255除以规范化值到0和{之间的间隔{1}}:

1

请注意,上面给出了每列的标准偏差。如果您想要将图像的标准偏差视为一个整体,首先线性化到列向量:

std(double(A)/255)