写一段代码:利用 MATLAB 图像处理和信号处理工具箱,设计和实现简易的 图像处理软件。实现以下功能: 1)图像的读取、显示和保存; 2)图像基本类型转换; 3)灰度图像直方图统计及分析; 4)图像对比度调整; 5)图像添加高斯噪声/椒盐噪声,其中噪声强度可调; 6)对含噪图像进行滤噪处理; 7)可以对鼠标选中的图像区域进行滤镜处理;
时间: 2024-03-02 16:52:00 浏览: 88
用MATLAB程序进行图像处理
以下是一个简单的MATLAB代码,实现了您提到的图像处理软件的基本功能:
```Matlab
%% 图像处理软件
% 1. 读取、显示和保存图像
I = imread('example_image.jpg'); % 读取图像
imshow(I); % 显示图像
imwrite(I, 'processed_image.jpg'); % 保存图像
% 2. 图像基本类型转换
gray_I = rgb2gray(I); % 将彩色图像转换为灰度图像
binary_I = imbinarize(gray_I); % 将灰度图像转换为二值图像
subplot(1,3,1), imshow(I), title('Original Image');
subplot(1,3,2), imshow(gray_I), title('Grayscale Image');
subplot(1,3,3), imshow(binary_I), title('Binary Image');
% 3. 灰度图像直方图统计及分析
figure;
subplot(1,2,1), imshow(gray_I), title('Grayscale Image');
subplot(1,2,2), imhist(gray_I), title('Grayscale Image Histogram');
% 4. 图像对比度调整
J = imadjust(I, [0.3, 0.7], [0, 1]); % 调整对比度
imshowpair(I, J, 'montage');
% 5. 图像添加高斯噪声/椒盐噪声
gaussian_noise = imnoise(I, 'gaussian', 0.05); % 添加高斯噪声
salt_pepper_noise = imnoise(I, 'salt & pepper', 0.05); % 添加椒盐噪声
subplot(1,3,1), imshow(I), title('Original Image');
subplot(1,3,2), imshow(gaussian_noise), title('Gaussian Noise Image');
subplot(1,3,3), imshow(salt_pepper_noise), title('Salt & Pepper Noise Image');
% 6. 对含噪图像进行滤噪处理
filtered_I = medfilt2(salt_pepper_noise); % 中值滤波
subplot(1,2,1), imshow(salt_pepper_noise), title('Noisy Image');
subplot(1,2,2), imshow(filtered_I), title('Filtered Image');
% 7. 对鼠标选中的图像区域进行滤镜处理
h = imrect(gca, [50 50 100 100]); % 鼠标选中图像区域
pos = wait(h);
selected_region = imcrop(I, pos); % 选中图像区域
filtered_region = imsharpen(selected_region); % 对选中图像区域进行锐化处理
I(pos(2):pos(2)+pos(4), pos(1):pos(1)+pos(3),:) = filtered_region; % 将处理后的图像区域替换原图像中的相应部分
imshow(I);
```
这个代码实现了基本的图像处理功能,包括读取、显示、保存图像,图像类型转换,灰度图像直方图统计,对比度调整,添加噪声,滤噪处理,以及对鼠标选中的图像区域进行滤镜处理。您可以根据需要进行修改和扩展。
阅读全文