1. 程式人生 > >第五章 基於形態學運算的影象變換

第五章 基於形態學運算的影象變換

由於形態學的慣例是用高(白色)畫素表示前景物體,用低(黑色)畫素表示背景物體,我們需要對影象進行取反。

在opencv中,腐蝕和膨脹由函式cv::erode和cv::dilate實現,用法如下:

<span style="font-size:18px;">cv::Mat image=cv::imread("binary.bmp");</span>
<span style="font-size:18px;">cv::Mat eroded;</span>
<span style="font-size:18px;">cv::erode(image,eroded,cv::Mat());</span>
<span style="font-size:18px;">cv::namedWindow("Eroded Image");</span>
<span style="font-size:18px;">cv::imshow("Eroded Image",eroded);</span>

當應用到一個給定畫素時,結構畫素的錨點與該畫素的位置對齊,而所有與他相交的畫素都被包括在當前的畫素集合中。

腐蝕替換當前畫素位畫素集合中找到的最小畫素值。膨脹則是相反操作。

腐蝕可以消除一些極其細小的東西(噪聲)

膨脹後物體會更大,同時物體內部的一些噪聲被填滿。

在opencv中,開閉運算用cv::MORPH_CLOSE和cv::MORTH_OPEN實現

閉運算:先膨脹,再腐蝕

開運算:先腐蝕,再膨脹