Matlab 求图像的标准差

Matlab 求图像的标准差,matlab,standard-deviation,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{:}));

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

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

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

>> 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{:}));

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

错误非常明显:

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

这是因为
A
属于
uint8
类型。
std
的输入必须是浮点(
single
double

因此:转换为
double
,并可选择除以
255
,以
0
1
之间的间隔值标准化:

std(double(A)/255)
注意,上面给出了每列的标准偏差。如果要将图像的标准偏差视为一个整体,请先将
线性化为列向量:

std(double(A(:))/255)