图像灰度变换 MATLAB实现
时间: 2023-09-20 10:12:22 浏览: 52
图像灰度变换是将图像的灰度级进行变换,从而改变图像的对比度、亮度等特性,常见的图像灰度变换包括线性变换、非线性变换等。
以下是Matlab实现图像灰度变换的示例代码:
1. 线性变换:
```matlab
% 读取图像
img = imread('lena.jpg');
% 线性变换,增强图像对比度
a = 1.5; % 增益因子
b = 50; % 亮度调整
img_new = a * img + b; % 公式:g(x,y) = a*f(x,y) + b
% 显示原始图像和变换后的图像
subplot(1,2,1);
imshow(img);
title('原始图像');
subplot(1,2,2);
imshow(img_new);
title('线性变换后的图像');
```
2. 非线性变换:
```matlab
% 读取图像
img = imread('lena.jpg');
% 对数变换,增强图像低灰度部分的细节
c = 50; % 常数
img_new = c * log(1 + double(img)); % 公式:g(x,y) = c * log(1 + f(x,y))
% 显示原始图像和变换后的图像
subplot(1,2,1);
imshow(img);
title('原始图像');
subplot(1,2,2);
imshow(uint8(img_new));
title('对数变换后的图像');
```
以上代码仅供参考,实际应用中可以根据具体需求进行参数调整和变换方法选择。
相关问题
图像的灰度变换matlab程序
以下是一个简单的图像灰度变换的 Matlab 程序:
```matlab
% 读取原始图像
img = imread('原始图像.jpg');
% 将图像转化为灰度图像
img_gray = rgb2gray(img);
% 进行灰度变换
img_transformed = imadjust(img_gray, [0.2, 0.8], []);
% 显示原始图像和变换后的图像
subplot(1, 2, 1);
imshow(img_gray);
title('原始图像');
subplot(1, 2, 2);
imshow(img_transformed);
title('灰度变换后的图像');
```
上述程序中,`imread` 函数用于读取原始图像,`rgb2gray` 函数将彩色图像转化为灰度图像,`imadjust` 函数进行灰度变换,`imshow` 函数用于显示图像。在进行灰度变换时,第二个参数 `[0.2, 0.8]` 表示将原始图像中灰度值在 0.2 到 0.8 之间的像素进行拉伸,以便更好地显示图像的细节。
注意:在运行程序前需要将程序中的文件路径 `'原始图像.jpg'` 修改为自己的图像路径。
matlab图像灰度变换
MATLAB中的图像灰度变换可以通过对图像像素值进行数学变换来实现。常见的灰度变换包括线性变换、非线性变换和对数变换等。下面是一个简单的例子,展示如何使用指数变换对图像进行灰度变换:
```matlab
clear;
clc;
% 读取图像
Image = imread('D:\绝密文件\数字图像处理\数字图像处理\car.jpg');
% 将图像转换为灰度图像
Image = double(rgb2gray(Image))/255;
% 指数变换
c = 255;
a = c/255*(Image.^2);
b = c/255*(Image.^4);
d = c/255*(Image.^0.5);
% 显示结果
figure();
subplot(2,2,1);
imshow(Image,[0 1]);
xlabel('原始图像');
subplot(2,2,2);
imshow(a,[0 1]);
xlabel('d=2时的指数变换图像');
subplot(2,2,3);
imshow(b,[0 1]);
xlabel('d=4时的指数变换图像');
subplot(2,2,4);
imshow(d,[0 1]);
xlabel('d=0.5时的指数变换图像');
```
上述代码中,我们首先读取了一张彩色图像,并将其转换为灰度图像。然后,我们使用指数变换对图像进行灰度变换,并将结果显示在一个4个子图的窗口中。