【问题标题】:Finding standard deviation of an image查找图像的标准差
【发布时间】:2016-11-29 16:16:27
【问题描述】:

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

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

但在第一步,出了点问题,我看到了:

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

我该如何解决这个问题,找出这张图片中所有线条的标准差的代码是什么?

【问题讨论】:

    标签: matlab standard-deviation


    【解决方案1】:

    错误非常明确:

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

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

    所以:转换为double,并可选择除以255标准化值到01 之间的区间:

    std(double(A)/255)
    

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

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

    【讨论】:

      猜你喜欢
      • 2020-05-22
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2020-07-07
      • 2014-08-21
      • 2015-04-07
      相关资源
      最近更新 更多