对一灰度图像,通过相对应的灰度级变换函数实现图像的灰度范围线性扩展,matlab代码
时间: 2024-03-27 14:36:55 浏览: 77
以下是一个简单的 MATLAB 代码,用于实现对一灰度图像的灰度范围线性扩展:
```matlab
% 读入图像
img = imread('test.jpg');
% 确定原始图像的最小灰度值和最大灰度值
min_gray = min(img(:));
max_gray = max(img(:));
% 确定目标灰度级范围的最小值和最大值
target_min = 0;
target_max = 255;
% 计算灰度变换函数的参数a和b
a = double(target_max - target_min) / double(max_gray - min_gray);
b = double(target_min) - a * double(min_gray);
% 对于原始图像的每个像素,使用灰度变换函数进行变换
new_img = uint8(a * double(img) + b);
% 显示原始图像和处理后的图像
subplot(1,2,1);
imshow(img);
title('Original Image');
subplot(1,2,2);
imshow(new_img);
title('Linearly Stretched Image');
```
在上述代码中,我们使用 `imread` 函数读入一张灰度图像,然后使用 `min` 和 `max` 函数确定原始图像的最小和最大灰度值。接着,我们确定目标灰度级范围的最小和最大值,并计算灰度变换函数的参数a和b。最后,我们使用灰度变换函数对原始图像的每个像素进行线性扩展,生成新的灰度图像。最后,我们使用 `subplot` 和 `imshow` 函数显示原始图像和处理后的图像。
阅读全文