Java基於opencv實現圖像數字識別(五)—腐蝕、膨脹處理


腐蝕:去除圖像表面像素,將圖像逐步縮小,以達到消去點狀圖像的效果;作用就是將圖像邊緣的毛刺剔除掉

膨脹:將圖像表面不斷擴散以達到去除小孔的效果;作用就是將目標的邊緣或者是內部的坑填掉

使用相同次數的腐蝕和膨脹,可以使目標表面更平滑;但也有場景限制,就是如果去噪不干凈的話,會出現意想不到的結果,盡量別使用

大概的效果,適合降噪比較干凈的圖
腐蝕和膨脹

// 圖像腐蝕/膨脹處理
public void erodeImg() {
	Mat outImage = new Mat();

	// size 越小,腐蝕的單位越小,圖片越接近原圖
	Mat structImage = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(5, 2));

	/**
	 * 圖像腐蝕
	 * 腐蝕說明: 圖像的一部分區域與指定的核進行卷積,
	 * 求核的最`小`值並賦值給指定區域。
	 * 腐蝕可以理解為圖像中`高亮區域`的'領域縮小'。
	 * 意思是高亮部分會被不是高亮部分的像素侵蝕掉,使高亮部分越來越少。
	 */
	Imgproc.erode(mat, outImage, structImage, new Point(-1, -1), 2);
	mat = outImage;

	/**
	 * 膨脹
	 * 膨脹說明: 圖像的一部分區域與指定的核進行卷積,
	 * 求核的最`大`值並賦值給指定區域。 
	 * 膨脹可以理解為圖像中`高亮區域`的'領域擴大'。
	 * 意思是高亮部分會侵蝕不是高亮的部分,使高亮部分越來越多。
	 */
	Imgproc.dilate(mat, outImage, structImage , new Point(-1, -1), 2);
	mat = outImage;

}

本文章參考了很多博客,感謝;主要是跟着一個博客來實現的https://blog.csdn.net/ysc6688/article/category/2913009 感謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM