two-pass方法計算二值圖連通域效率比較低,補充下seed filling種子填充法,該方法類似於圖的深度搜素。
為了提高效率,做了一點修改。
針對新標籤的第乙個畫素,其鄰域只選取下方和後方未處理的畫素;具體**:針對處理過的畫素新增識別符號,下次再碰到該畫素時,可直接跳過。
判斷鄰域座標,防止越界。
bool seedfill(cv::mat pbinary, int background, int foreground,
int border,cv::mat& plabel)
int& label_data = plabel.ptr(cur_y)[cur_x];
int& stauts = marked.ptr(cur_y)[cur_x];
if (1 != label_data || 0 == stauts)
label_data = label;
stauts = 0;
neighbor_data.pop();
// up
neighbor_data.push(pair(cur_y - 1, cur_x) );
// down
neighbor_data.push(pair(cur_y+1, cur_x));
// left
neighbor_data.push(pair(cur_y, cur_x - 1));
// right
neighbor_data.push(pair(cur_y, cur_x + 1)); }}
}return
true;
}
結果:
完。
lewis, 2018-06-25
python連通區域計算長度 連通區域演算法小結
聯通區域標記 connected component labeling 是影象處理裡面常用的乙個技術,它是用來檢測二值影象中聯通的區域,在許多跟蹤檢測演算法中充當目標區域檢測的作用。常見的ccl connected component labeling 包括two pass的方法和one pass的...
CCL 連通區域提取
根據朋友給的乙份原理寫的 感覺還挺清楚 include cv.h include highgui.h include using namespace cv define maxwidth 352 define maxheight 288typedef struct ptnodeptnode void...
功能區域分析 如何將業務架構轉化成為IT應用
功能區域分析可以從元件業務模型開始,並可將確定的 cbm 能力作為起點。業務建模的工作由正在研究的業務領域確定範圍,所以功能區域分析可從這組初始業務領域中進行選擇,然後進一步將它們分解為子領域,並最終分解成功能區域 來自初始模型的 cbm 元件應在此處提供良好的指導資訊。功能區域分析以建立摘要描述開...