查找图像的标准偏差

vol*_*kan -4 matlab standard-deviation

首先,我想找到这个图像的标准偏差:

在此输入图像描述

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

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

>> 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{:}));
Run Code Online (Sandbox Code Playgroud)

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

Lui*_*ndo 5

错误非常明确:

第一个输入参数必须是single或double.

A是因为是类型的uint8.输入std必须是浮点(singledouble).

所以:转换成double,并且任选地除以255标准化值之间的间隔01:

std(double(A)/255)
Run Code Online (Sandbox Code Playgroud)

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

std(double(A(:))/255)
Run Code Online (Sandbox Code Playgroud)