在MATLAB中利用linspace函数实现一个自定义图像灰度变换函数
时间: 2024-05-12 13:18:47 浏览: 109
灰度变换函数是一种将原始图像的灰度级映射到新的灰度级的函数。在MATLAB中,可以使用linspace函数创建一个从输入灰度级到输出灰度级的线性映射。以下是一个示例函数,可以自定义输出灰度级的范围和所需的灰度级映射:
```matlab
function out = gray_transform(in, low, high)
%GRAY_TRANSFORM applies gray level transformation to input image
% IN - input image
% LOW - low output gray level
% HIGH - high output gray level
% OUT - output image
% input range
in_min = min(in(:));
in_max = max(in(:));
% output range
out_min = low;
out_max = high;
% linear transformation
out = (in - in_min) .* (out_max - out_min) ./ (in_max - in_min) + out_min;
% ensure output range is within [0, 255]
out = max(min(out, 255), 0);
% convert to uint8
out = uint8(out);
end
```
使用该函数时,可以将输入图像和所需的输出灰度级范围作为参数传递。例如,以下代码将输入图像的灰度级映射到输出灰度级范围[50, 200]:
```matlab
in = imread('input.jpg');
out = gray_transform(in, 50, 200);
imshow(out);
```
阅读全文