matlab灰度变换代码
在 MATLAB 中进行灰度变换通常涉及到修改图像的亮度和对比度,或者对图像进行直方图均衡化等操作。
matlab% 读取图像 image = imread('example_image.jpg'); % 显示原始图像 subplot(2, 2, 1); imshow(image); title('Original Image'); % 灰度变换 - 线性变换 (增强对比度) alpha = 1.5; % 亮度增益 beta = 30; % 亮度偏移 linear_transformed_image = alpha * double(image) + beta; linear_transformed_image = uint8(max(min(linear_transformed_image, 255), 0)); % 确保像素值在 0 到 255 之间 % 显示线性变换后的图像 subplot(2, 2, 2); imshow(linear_transformed_image); title('Linearly Transformed Image'); % 灰度变换 - 对数变换 (增强亮度) log_transformed_image = uint8(255 * log(1 + double(image))); % 显示对数变换后的图像 subplot(2, 2, 3); imshow(log_transformed_image); title('Log Transformed Image'); % 灰度变换 - 伽马校正 (增强对比度) gamma = 1.5; % 伽马值 gamma_corrected_image = uint8(255 * (double(image) / 255).^gamma); % 显示伽马校正后的图像 subplot(2, 2, 4); imshow(gamma_corrected_image); title('Gamma Corrected Image');
这段代码将演示如何通过线性变换、对数变换和伽马校正来执行灰度变换。你可以根据需要调整参数以实现不同的效果。
matlab% 读取图像 image = imread('example_image.jpg'); % 显示原始图像和其直方图 subplot(2, 3, 1); imshow(image); title('Original Image'); subplot(2, 3, 4); imhist(image); title('Original Image Histogram'); % 1. 线性变换 alpha = 1.5; % 亮度增益 beta = 30; % 亮度偏移 linear_transformed_image = alpha * double(image) + beta; linear_transformed_image = uint8(max(min(linear_transformed_image, 255), 0)); % 显示线性变换后的图像和其直方图 subplot(2, 3, 2); imshow(linear_transformed_image); title('Linearly Transformed Image'); subplot(2, 3, 5); imhist(linear_transformed_image); title('Linearly Transformed Image Histogram'); % 2. 对数变换 log_transformed_image = uint8(255 * log(1 + double(image))); % 显示对数变换后的图像和其直方图 subplot(2, 3, 3); imshow(log_transformed_image); title('Log Transformed Image'); subplot(2, 3, 6); imhist(log_transformed_image); title('Log Transformed Image Histogram'); % 3. 直方图均衡化 histeq_image = histeq(image); % 显示直方图均衡化后的图像和其直方图 figure; subplot(2, 2, 1); imshow(histeq_image); title('Histogram Equalized Image'); subplot(2, 2, 2); imhist(histeq_image); title('Histogram Equalized Image Histogram'); % 比较直方图均衡化前后的原始图像和直方图 subplot(2, 2, 3); imshow(image); title('Original Image'); subplot(2, 2, 4); imhist(image); title('Original Image Histogram');
这段代码演示了灰度图像的线性变换、对数变换和直方图均衡化。你可以通过调整参数和尝试不同的变换方法来实现所需的图像效果。