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函数,实时观察像素值变化,比看十篇论文都有用。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐