MATLAB(第八讲)
灰度图的腐蚀与膨胀
灰度图的腐蚀
用结构元素的中心点,从左到右从上到下,依次扫描灰度图的像素点,图片上该像素点的值取为结构元素所覆盖区域中像素点的最小值,扫描一遍后会得到一张新图,就是原图的腐蚀图。
用该结构元素:
对下面矩阵进行腐蚀
对第一个像素点的腐蚀操作如下:
当移动到中间某像素点时腐蚀操作如下:
灰度图的膨胀
用结构元素的中心点,依次扫描灰度图的每个像素点,图片上该像素点的值取为结构元素覆盖的所有像素点中的最大值,扫描一遍后会得到一张新图,就是原图的膨胀图。
用该结构元素:
对下面矩阵进行膨胀
对第一个像素点的膨胀操作如下:
扫描到中间某像素点时的膨胀操作为:
顶帽操作
顶帽操作的效果等同于原图-开运算,即原图减去开运算的图像。顶帽用来对灰度图进行操作。函数为:
tophat = imtophat( g , se ); (= g - g_open; )
顶帽操作通常用来去除背景。
底帽操作
底帽操作的效果等同于原图-闭运算,即原图减去闭运算的图像。底帽用来对灰度图进行操作。函数为:
bothat = imbothat( g , se ); (= g - g_close; )
注:顶帽和底帽操作都是对于灰度图的操作。
顶帽和底帽的应用
对下图进行顶帽和底帽操作,查看效果。
步骤:
- 首先将图片转为灰度图,因为底帽和顶帽操作都是针对灰度图。
- 直接用函数进行顶帽和底帽操作
本例代码为:
clear,clc,close all;
f=imread('lemon.jpg');
imshow(f);
g=rgb2gray(f);
figure,imshow(g);
tophat=imtophat(g,strel('disk',10));
subplot(1,2,1),imshow(tophat),title('顶帽');
bothat=imbothat(g,strel('disk',10));
subplot(1,2,2),imshow(bothat),title('底帽');
来源:CSDN
作者:木子雨田
链接:https://blog.csdn.net/qq_36793268/article/details/93852010