最大輪廓和投影

2022-01-23 13:58:29 字數 1496 閱讀 2202

最大輪廓和投影

最近非常多的用到了最大輪廓和投影運算。回想起來,這兩種演算法的確是屬於非常常見的基礎演算法。這裡加以總結和提取。

最大輪廓:

前提是影象經過了灰度和閾值處理,也可以直接處理canny的結果,有些時候需要預先經過色彩域的轉換。最後得到的結果,應該是乙個contour,當然可以採用一定的方法處理得到外接矩形。

//尋找最大的輪廓

vector:point> findbigestcontour(mat src)

}returncontours[imax];

}呼叫方法,得到外接矩陣

rect boundrect = boundingrect(mat(findbigestcontour(canny)));

投影處理

這裡的前提和最大輪廓是非常相似的。投影主要關心的是通過投影圖像,獲得原始影象中的roi,或者獲得有多少個上波形多少個下波形這些定量的結果。

vector<

int> vectorv; //橫向迴圈

vector<

int> vectorh; //縱向迴圈

vector<

int> vupper;

vector<

int> vdown;

vector<

int> hupper;

vector<

int> hdower;

// 做橫向迴圈

for(inti=

0;i//上波形為vupper,下波形為vdown

for(inti=

1;iif(vectorv[i-

1]>

0&& vectorv[i] ==0)}

//做縱向迴圈,這個往往處理的是橫向迴圈的結果

for(intj=

0;jfor(intj=

0;j1;j++)

if(vectorh[j] ==

0&& vectorh[j+

1]>0)}

//由於處理的上波形和下波形可能會有問題,需要進行一定的處理

//這裡的乙個處理就是提出哪些短暫的空白區域

for(intj=

0;j1;j++)

}

最大輪廓和投影

最大輪廓和投影 最近非常多的用到了最大輪廓和投影運算。回想起來,這兩種演算法的確是屬於非常常見的基礎演算法。這裡加以總結和提取。最大輪廓 前提是影象經過了灰度和閾值處理,也可以直接處理canny的結果,有些時候需要預先經過色彩域的轉換。最後得到的結果,應該是乙個contour,當然可以採用一定的方法...

Opencv contours找出最大輪廓

在處理二值影象時,常用 cv2.findcontours 查詢輪廓,如下所示 find all cohntoursbinary 代表二值影象 之後可以用lambda 表示式對 contours 排序,如下所示 contours.sort key lambda c cv2.contourarea c ...

輪廓和圓角

box shadow 用來設定元素的陰影效果,陰影不會影響頁面布局 第乙個值 水平偏移量 設定陰影的水平位置 正值向右移動 負值向左移動 第二個值 垂直偏移量 設定陰影的水平位置 正值向下移動 負值向上移動 第三個值 陰影的模糊半徑 第四個值 陰影的顏色 outline 用來設定元素的輪廓線,用法和...