第五章 基於形態學運算的影象變換
阿新 • • 發佈:2019-02-14
由於形態學的慣例是用高(白色)畫素表示前景物體,用低(黑色)畫素表示背景物體,我們需要對影象進行取反。
在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實現
閉運算:先膨脹,再腐蝕
開運算:先腐蝕,再膨脹