S3 MATLAB 图像处理综合实验平台 包括以下功能 Read image-open-gallery 导入图片 Resolutions 图像模糊处理 Image histogray灰度直方图显示,分水岭图像分割,gamma变换,直方图均衡化 Spatical Filtering 图像添加噪声和滤波,以及图像锐化 Frequency domain 一维和二维图像傅里叶变化 Morphology 形态学处理
开局一张图
导入图片千万别用老旧的uigetfile对话框了,试试这个骚操作:
[file, path] = uigetfile({'*.jpg;*.png;*.bmp','图片格式'}); img = imread(fullfile(path,file)); imshow(img);这里fullfile自动处理路径拼接,比字符串拼接优雅多了。遇到报错记得检查文件权限,系统路径里有中文也容易抽风。
模糊攻击
高斯模糊用现成函数太没劲,手写卷积核更有参与感:
kernel = fspecial('gaussian', [15 15], 5); % 15x15核,σ=5 blurred = imfilter(img, kernel, 'replicate'); imshowpair(img, blurred, 'montage');第三个参数'replicate'防止边缘黑边,换成'symmetric'效果不同。核尺寸越大模糊越狠,但超过25x25小心内存报警。
直方图七十二变
gamma校正别只会用imadjust,试试底层计算:
gamma = 0.5; corrected = im2uint8(im2double(img).^gamma); subplot(121); imhist(img); subplot(122); imhist(corrected);这里im2double转换是关键,uint8直接做幂运算会溢出。直方图均衡化更狠:
eq_img = histeq(img(:,:,1)); % 处理单通道 imshow(eq_img);注意彩色图要分通道处理,直接三通道均衡化会偏色。
S3 MATLAB 图像处理综合实验平台 包括以下功能 Read image-open-gallery 导入图片 Resolutions 图像模糊处理 Image histogray灰度直方图显示,分水岭图像分割,gamma变换,直方图均衡化 Spatical Filtering 图像添加噪声和滤波,以及图像锐化 Frequency domain 一维和二维图像傅里叶变化 Morphology 形态学处理
噪声与滤波大战
给图片加点料才有处理价值:
noisy = imnoise(img, 'salt & pepper', 0.05); % 5%椒盐噪声 median_filtered = medfilt2(noisy(:,:,1), [3 3]);中值滤波对付椒盐噪声是绝杀,但处理速度随窗口尺寸指数增长。彩色图建议转HSV空间单独处理V通道。
傅里叶魔法
二维FFT频谱可视化套路:
fimg = fftshift(fft2(rgb2gray(img))); spectrum = log(1 + abs(fimg)); imshow(spectrum, []);高频集中在频谱图中心是常见误区,实际fftshift之后高频在四周。想过滤特定频率?做个环形mask与频谱相乘就行。
形态学骚操作
开运算闭运算看着像玄学?拿车牌识别举例:
se = strel('rectangle',[3 20]); % 假设车牌字符是横向排列 opened = imopen(bw_img, se); imshow(opened);结构元素形状选得好,二值图处理事半功倍。腐蚀膨胀顺序调换就是开闭运算的区别,实战中多试几次参数比理论计算靠谱。
这个平台里还藏着分水岭分割的防过分割技巧、自适应直方图均衡这些黑科技。不过码代码最爽的时刻,还是看到imshow弹出处理前后对比图的那一瞬间——像素级的操作直接视觉化反馈,比纯理论推导带劲多了。建议新手多玩imtool函数,实时观察像素值变化,比看十篇论文都有用。