gpt4 book ai didi

matlab - 为什么输入图像的类别最好为 double ?

转载 作者:行者123 更新时间:2023-12-02 06:50:19 25 4
gpt4 key购买 nike

我正在阅读有关使用 matlab 进行数字图像处理的内容,其中有一个示例,其中输入图像要进行一些强度变换,例如 Gamma 变换、对比度拉伸(stretch)、负片等。

这是作者对图像所做的第一件事:

% If the input is of class double, and it is outside the range
% [0, 1], and the specified transformation is not 'log', convert the
% input to the range [0, 1].
if strcmp(class(f), 'double') & max(f(:)) > 1 & . . .
-strcmp(varargin{1}, 'log')
f = mat2gray(f);
else % Convert to double, regardless of class(f).
f = im2double(f);

我是图像处理新手,但我不明白的是为什么要进行所有这些更改?为什么我们不能直接采用输入图像(例如 unint16)并对其应用 Gamma 和负函数?为什么它必须是double并且在[0 1]之间?

最佳答案

gamma correction通常保持输入和输出都在[0,1]范围内,Vin^gamma = Vout无论 gamma>1 是否满足此范围要求或gamma<1

double 格式可能更容易进行各种操作。我不知道您提供的代码中的详细信息,但根据我的经验,有时会使用像 a.*(a>100) 这样的阈值方法将返回错误:Integers can only be combined with integers of the same class, or scalar doubles如果auint16类型。和uint格式可能会出现溢出问题。

关于matlab - 为什么输入图像的类别最好为 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com