matlab梯度增强代码
时间: 2023-05-29 15:06:47 浏览: 44
以下是一份使用MATLAB实现的梯度增强代码:
%% 读取图像
img = imread('lena.png');
figure, imshow(img), title('原始图像');
%% 梯度增强
% 计算水平和垂直方向的梯度
gx = [-1 0 1; -2 0 2; -1 0 1];
gy = [1 2 1; 0 0 0; -1 -2 -1];
Ix = conv2(double(img), gx, 'same');
Iy = conv2(double(img), gy, 'same');
% 计算梯度大小和方向
grad_mag = sqrt(Ix.^2 + Iy.^2);
grad_dir = atan2(Iy, Ix);
% 将梯度大小限制在0到255之间
grad_mag = (grad_mag - min(min(grad_mag))) / (max(max(grad_mag)) - min(min(grad_mag))) * 255;
% 进行梯度增强
enhanced_img = img + uint8(grad_mag);
figure, imshow(enhanced_img), title('增强后的图像');
相关问题
matlab彩色图像梯度增强代码
以下是一个简单的MATLAB代码,用于对彩色图像进行梯度增强:
```matlab
% 读取图像
img = imread('lena.png');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算梯度图像
[Gx, Gy] = imgradientxy(gray_img);
% 计算梯度强度图像
grad_mag = sqrt(Gx.^2 + Gy.^2);
% 将梯度强度图像映射到0-255的范围内
grad_mag = grad_mag / max(grad_mag(:)) * 255;
% 将梯度强度图像应用于原始图像
enhanced_img = img + cat(3, grad_mag, grad_mag, grad_mag);
% 显示增强后的图像
imshow(enhanced_img)
```
这段代码会读取名为“lena.png”的彩色图像,将其转换为灰度图像,计算梯度图像和梯度强度图像,将梯度强度图像映射到0-255的范围内,然后将梯度强度图像应用于原始图像以进行梯度增强。最后,它会显示增强后的图像。
matlab彩色图像梯度增强代码(彩色图像不要转换为其他图像)
以下是使用MATLAB进行彩色图像梯度增强的示例代码:
% 读入彩色图像
img = imread('color_image.jpg');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算灰度图像的梯度
[Gx, Gy] = imgradientxy(gray_img);
% 计算梯度幅值和方向
[Gmag, Gdir] = imgradient(Gx, Gy);
% 将梯度幅值映射到0到255的范围内
Gmag = (255 / max(Gmag(:))) * Gmag;
% 将图像的红色通道增强梯度幅值
img(:,:,1) = img(:,:,1) + uint8(Gmag);
% 将图像的绿色通道增强梯度方向
img(:,:,2) = img(:,:,2) + uint8(Gdir);
% 显示增强后的彩色图像
imshow(img);