腐蚀与膨胀是最基本的形态学操作,它们能够实现多种多样的功能,主要如下:
1) 消除噪声
2) 分割出独立的图像元素,在图像中连接相邻的元素
3) 寻找图像中的明显的极大值区域或极小值区域
4) 求出图像的梯度

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

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

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);
}

源图像:

膨胀图像:

腐蚀图像:

更多相关文章

  1. 想在android中使用node.js和socket.io发送图像
  2. Android Picasso Dropbox:如何将图像加载到gridview中
  3. OpenCV4Android中图像预览旋转90度的问题
  4. Android图形图像处理之Bitmap和BitmapFactory
  5. 使用android的加速度计移动图像
  6. 在不同状态下使用两个图像切换按钮
  7. POST json和图像到服务器android
  8. Java实现图像对比类
  9. 为可执行文件夹提供自定义图像

随机推荐

  1. MySQL 运算符和函数
  2. Mysql:设置0000-00-00为null
  3. 将数据存入mysql中
  4. mysql 的完整性约束 与单表查询
  5. 再论mysql线程出现Waiting for table flu
  6. PHP解析错误:语法错误,意外的T_VARIABLE
  7. 坚持一个简单的查询 - OUTER JOIN
  8. 使用随机盐改进密码哈希
  9. Wordpress 外网访问时不显示图片解决办法
  10. Java MySQL数据类型对照