
图像的形态学
形态学操作 (Morphological Operations)是一种图像处理技术,主要用于二值图像的处理,通常用于 去噪、分离或合并物体、提取图像结构等任务。形态学操作的核心思想是基于图像中像素的形状或结构 进行处理,因此它在边缘检测、物体识别和图像增强等领域中有广泛应用。
常见的形态学操作包括:
- 1.膨胀(Dilation)
- 2.腐蚀(Erosion)
- 3.开运算(Opening)
- 4.闭运算(Closing)
- 5.形态学梯度 (Morphological Gradient)
- 6.顶帽(Top Hat)
- 7.黑帽(Black Hat)
膨胀
原理
形态学操作一般是基于一个形态学结构元素(structuring element)在图像上进行"滑动窗口”操作。 结构元素通常是一个小的矩阵(如3x3的方形或圆形矩阵),在图像的每个位置上进行相应的计算。
java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* 公众号:干货食堂
*/
public class Test {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//读取图像,使用灰度模式
Mat src=Imgcodecs.imread("C:\\Users\\Think\\Desktop\\TestCV\\fish.png",Imgcodecs.IMREAD_GRAYSCALE);
//创建结构元素 (3x3的矩形)
Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));
//创建输出图像
Mat dst = new Mat();
//执行膨胀操作
Imgproc.dilate(src, dst, kernel);
//保存结果图像
HighGui.imshow("before Image", src);
HighGui.imshow("after Image", dst);
HighGui.waitKey(0);
HighGui.destroyAllWindows();
}
}
腐蚀
java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* 公众号:干货食堂
*/
public class Test {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//读取图像,使用灰度模式
Mat src=Imgcodecs.imread("C:\\Users\\Think\\Desktop\\TestCV\\fish.png",Imgcodecs.IMREAD_GRAYSCALE);
//创建结构元素 (3x3的矩形)
Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));
//创建输出图像
Mat dst = new Mat();
//执行腐蚀操作
Imgproc.erode(src, dst, kernel);
//保存结果图像
HighGui.imshow("before Image", src);
HighGui.imshow("after Image", dst);
HighGui.waitKey(0);
HighGui.destroyAllWindows();
}
}