解釋 Java 中的 Top Hat 和 Black Hat 形態學運算。
形態學運算是一組根據給定形狀處理影像的操作。
腐蝕 - 腐蝕是一種形態學運算,在此期間會從影像邊界移除畫素。
膨脹 - 膨脹是一種形態學運算,在此期間會向影像邊界新增畫素。
新增/移除的畫素總數取決於所用結構元素的尺寸。
形態學開運算 - 在此操作期間,對給定的輸入應用腐蝕,然後對結果應用膨脹。這用於去除影像前景中的小物體。
形態學閉運算 - 在此操作期間,對給定的輸入應用膨脹,然後對結果應用腐蝕。這用於去除影像上的小物體。
形態學頂帽 是給定影像與其開運算之間的差異。
示例
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class TopHatExample {
public static void main(String args[]) {
//Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
//Reading image data
String file ="D:\Images\morph_input1.jpg";
Mat src = Imgcodecs.imread(file);
//Creating destination matrix
Mat dst = new Mat(src.rows(), src.cols(), src.type());
//Preparing the kernel matrix object
Mat kernel = Mat.ones(5,5, CvType.CV_32F);
//Applying dilate on the Image
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);
//Displaying the image
HighGui.imshow("Blackhat Gradient", dst);
HighGui.waitKey();
}
}輸入影像

輸出

形態學黑帽 是閉運算與給定影像之間的差異。
示例
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class TopHatExample {
public static void main(String args[]) {
//Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
//Reading image data
String file ="D:\Images\morph_input1.jpg";
Mat src = Imgcodecs.imread(file);
//Creating destination matrix
Mat dst = new Mat(src.rows(), src.cols(), src.type());
//Preparing the kernel matrix object
Mat kernel = Mat.ones(5,5, CvType.CV_32F);
//Applying dilate on the Image
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_BLACKHAT, kernel);
//Displaying the image
HighGui.imshow("Blackhat Gradient", dst);
HighGui.waitKey();
}
}輸入影像

輸出

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP