前言
漫水填充算法是用來標記一片區域的:設置一個種子點,然后種子點附近的相似點都被填充同一種顏色。
該算法應用性很廣,比如目標識別,photoshop 的魔術棒功能等等,是填充類算法中應用最為廣泛的一個算法。
漫水填充算法函數 - cvFloodFill()
函數原型:
1 void cvFloodFill ( 2 IplImage * img, // 輸入圖像 3 CvPoint seedPoint, // 種子點 4 CvScalar newVal, // 像素點被染色的值 5 CvScalar loDiff = cvScalarAll(0), // 染色邊界判定 6 CvScalar upDiff = cvScalarAll(0), // 染色邊界判定 7 CvConnectedComp * comp = NULL, // 填充區域統計屬性 8 int flags = 4, // 連通性,相關性等參數設置。 9 CvArr * mask = NULL // 掩碼區域 10 );
參數特別說明:
1. 掩碼參數 mask 必須是一個單通道,8位,像素寬度高度均比原圖像大兩個像素。mask 圖像的像素 (x+1, y+1) 與原圖像 (x, y) 相對應。為 0 的位表示不進行處理。同時,掩碼區也會返回填充結果。
2. flags 參數提供更為強大的填充配置信息,詳見相關資料。
運行結果
小結
常用的一個填充算法。