腐蝕:去除圖像表面像素,將圖像逐步縮小,以達到消去點狀圖像的效果;作用就是將圖像邊緣的毛刺剔除掉
膨脹:將圖像表面不斷擴散以達到去除小孔的效果;作用就是將目標的邊緣或者是內部的坑填掉
使用相同次數的腐蝕和膨脹,可以使目標表面更平滑;但也有場景限制,就是如果去噪不干凈的話,會出現意想不到的結果,盡量別使用
大概的效果,適合降噪比較干凈的圖
// 圖像腐蝕/膨脹處理
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 感謝