使用matlab实现对给定的灰度(lena.bmp)图像 (1) 进行灰度线性变换,分三段:0-100/0-50,100-200/50-230,200-255/230-255;
时间: 2024-02-15 20:04:36 浏览: 30
好的,下面是一个 Matlab 代码示例,用于将灰度图像进行灰度线性变换:
```matlab
% 读取灰度图像
img = imread('lena.bmp');
img_gray = rgb2gray(img);
% 灰度线性变换
out = zeros(size(img_gray), 'uint8');
% 第一段变换:0-100/0-50
out(img_gray <= 100) = img_gray(img_gray <= 100) * 0.5;
out(img_gray > 100) = 50 + (img_gray(img_gray > 100) - 100) * 1;
% 第二段变换:100-200/50-230
out(img_gray > 200) = 230 + (img_gray(img_gray > 200) - 200) * 0.25;
out((img_gray > 100) & (img_gray <= 200)) = 50 + (img_gray((img_gray > 100) & (img_gray <= 200)) - 100) * 1.5;
% 第三段变换:200-255/230-255
out(img_gray <= 200) = 230 + (img_gray(img_gray <= 200) - 200) * 0.25;
out(img_gray > 200) = 255;
% 显示原图和处理后的图像
subplot(1,2,1); imshow(img_gray); title('Original');
subplot(1,2,2); imshow(out); title('Processed');
```
上述代码将灰度图像读入为灰度图,然后对图像进行灰度线性变换,最后显示原图和处理后的图像。您可以将上述代码保存为一个 `.m` 文件并运行它,以查看处理后的图像。