findcounters函式查詢的輪廓點集有序排列

2021-09-19 06:31:44 字數 530 閱讀 6198

std::sort(contours.begin(),contours.end(),contourssortfun);
sort是分類函式,引數解釋: 第乙個引數是陣列的首位址,一般寫上陣列名就可以,因為陣列名是乙個指標常量。第二個引數相對較好理解,即首位址加上陣列的長度n(代表尾位址的下一位址)。最後乙個引數是比較函式的名稱(自定義函式cmp),這個比較函式可以不寫,即第三個引數可以預設,這樣sort會預設按陣列公升序排序。

1.按周長(輪廓點數量)排序

static inline bool contourssortfun(vectorcontour1,vectorcontour2)  

``2.按面積排序

static inline bool contourssortfun(vectorcv::point contour1,vectorcv::point contour2)

``一般處理需要得到最大輪廓的點集,按照這個排完順序之後,就可以找到最大的輪廓,用最大的輪廓來進行後續的處理`

findcounters函式除錯失敗

findcounters函式可以進行輪廓檢測,目前我需要提取火焰的形狀,這個函式在今年六月份的 中是已經成功執行了的,但是九月份再用卻無法執行,錯誤有 一 abort has been called 二 執行至該函式,程式直接終止,看不出詳細報錯 三 指標問題 這裡貼出我原來的 void drawf...

並查集Find函式

void find int x int find int x while p x return x 並查集的應用有很多這裡給大家推薦一道很好的題。這道題的 如下 int pre maxn maxx maxn num maxn int find int x while p x return x voi...

並查集之 Find函式

發現自己寫了兩道題都把find函式寫得一塌糊塗。一題是沒有路徑壓縮過不了,一題是因為前面寫錯過弄混了,不三不四的。總結很重要啊!路徑壓縮 遞迴寫法 int find int x return father x 非遞迴寫法 int find int x return x 一般寫法 非遞迴遞迴 int ...