java 腐蚀 膨胀_Java+opencv3.2.0之膨胀与腐蚀

本文介绍了Java中使用OpenCV3.2.0进行图像处理时的腐蚀和膨胀操作,这两种基本的形态学操作可以消除噪声、分割图像元素。文中详细解释了膨胀和腐蚀的原理,并给出了使用Imgproc.dilate()和Imgproc.erode()函数进行操作的参数说明,以及如何通过Imgproc.getStructuringElement()创建不同形状的内核。最后,提供了一个示例代码展示如何应用这些函数处理图像。
摘要由CSDN通过智能技术生成

腐蚀与膨胀是最基本的形态学操作,它们能够实现多种多样的功能,主要如下:

1) 消除噪声

2) 分割出独立的图像元素,在图像中连接相邻的元素

3) 寻找图像中的明显的极大值区域或极小值区域

4) 求出图像的梯度

膨胀是求局部最大值的操作。本质上就是将图像A与核B进行卷积。

b45006d2484cce0da4eeb25cabeadc88.png

腐蚀和膨胀相反,是求局部最小值。它也是需要图像A与核B进行卷积。

4401a6d5ff800c4ab0caf0d6d693ebff.png

Opencv3.2.0实现膨胀的函数:Imgproc.dilate(Mat src, Mat dst, Mat kernel, Point anchor, int iterations, int borderType, Scalar borderValue)

参数说明:

src:源图像

dst:目标图像

kernel:膨胀操作的核,当为Null时,表示的是使用参考点位于中心的3x3的核。我们一般使用getStructuringElement配合这个参数使用。

anchor:锚的位置,默认值为(-1,-1),表示锚位于中心

iterations:迭代使用膨胀的次数,默认为1

borderType:推断外部像素的某种边界模式,默认值为BORDER_DEFAULT

borderValue:当边界为常数时的边界值,有默认值,一般不去管它。

Opencv3.2.0中实现腐蚀的函数:Imgproc.erode(Mat src, Mat dst, Mat kernel, Point anchor, int iterations, int borderType, Scalar borderValue)

参数说明:

src:源图像

dst:目标图像

kernel:膨胀操作的核,当为Null时,表示的是使用参考点位于中心的3x3的核。我们一般使用getStructuringElement配合这个参数使用。

anchor:锚的位置,默认值为(-1,-1),表示锚位于中心

iterations:迭代使用膨胀的次数,默认为1

borderType:推断外部像素的某种边界模式,默认值为BORDER_DEFAULT

borderValue:当边界为常数时的边界值,有默认值,一般不去管它。

函数Imgproc.getStructuringElement(int shape, Size ksize, Point anchor)会返回指定形状或尺寸的内核矩阵。参数shape在opencv3.2.0中有多达11种取值,这里给出三种:Imgproc.MORPH_RECT(矩形)、Imgproc.MORPH_CROSS(交叉形)、Imgproc.MORPH_ELLIPSE(椭圆形)。ksize和anchor分别代表内核的尺寸和锚点位置。

例子:

public static void main(String[] args) {

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

Mat srcImage = Imgcodecs.imread("F:\\t01315b7884a7f706bd.jpg");

Mat dilateImage = srcImage.clone();

Mat erodeImage = srcImage.clone();

Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3,3));

//膨胀

Imgproc.dilate(srcImage, dilateImage, element, new Point(-1, -1), 1);

//腐蚀

Imgproc.erode(srcImage, erodeImage, element, new Point(-1, -1), 1);

Imgcodecs.imwrite("F:\\dilateImage.jpg", dilateImage);

Imgcodecs.imwrite("F:\\erodeImage.jpg", erodeImage);

}

源图像:

e77e3ef568874aa778c8c43b5b8e5361.png

膨胀图像:

3ab9e98b13341112fb45849ce029b2f4.png

腐蚀图像:

26039e2fc53ec87df1b3d01634eaa719.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值