opencv之輪廓的查詢與繪製

2021-08-02 18:24:17 字數 1219 閱讀 2678

1)什麼是輪廓

輪廓可以簡單的認為是將連續的點(連著邊界)連在一起的曲線,具有相同的顏色或者灰度,提取輪廓就是提取這些具有相同顏色或者灰度的曲線,或者說是連通域,輪廓在形狀分析和物體的檢測和識別中非常有用

注意事項:

1.為了更加準確,要使用二值化影象,在尋找輪廓之前,要進行閾值化處理或者canny邊緣檢測

2.查詢輪廓的函式會修改原始影象,如果你在查詢輪廓之後還想使用原始影象的話,應該將原始影象儲存到其他變數中(clone(),copyto())

3.在opencv中,查詢輪廓就像是在黑色背景中找白色物體,你應該記住,要找的物體應該是白色而背景應該是黑色

常用函式:

findcontours()—-查詢輪廓

drawcontours()—–繪製輪廓

繪製輪廓—–drawcontours()

void drawcontours(inputoutarray image,inputarrayofarrays contours,int contouridx,const scalar &color,int thickness=1,int linetype=8,inputarray hierarchy=noarray(),int maxlevel=int_max,point offset=point());

&&image:目標影象,mat型別物件即可

&&contours:所有的輪廓指示變數(索引),若為負值,則表示繪製所有輪廓

&&color:繪製輪廓的顏色

&&thickness:輪廓線條的粗細,預設值1,如果為負值,則繪製輪廓內部,可選巨集cv_filled

&&linetype:線條型別,預設值8

&&hirearcy:可選的層次變數,預設值noarray()

&&maxlevel:可以用於繪製輪廓的最大等級,預設值int_max

&&offset:可選的輪廓偏移引數,預設值point()

ex1:

drawcontours(result,contours,-1,scalar(0,255,0),1,8);

#include"opencv2/opencv,hpp"

#include

using

namespace

std;

using

namespace cv;

void mian()

//道路的裂縫檢測

OpenCV之查詢並繪製輪廓

在opencv中,用findcontours 函式從二值圖中查詢輪廓。原型 void findcontourd inputarray image,outputarray contours,outputarray hierarchy,int mode,int mrthod,point offset p...

opencv 20 輪廓查詢與繪製

輪廓可以簡單認為成將連續的點 連著邊界 連在一起的曲線,具有相同的顏色或者灰度,提取輪廓就是提取這些具有相同顏色或者灰度的曲線,或者說是連通域,輪廓在形狀分析和物體的檢測和識別中非常有用。為了更加準確,要使用二值化影象。在尋找輪廓之前,要進行閾值化處理或者 canny 邊界檢測 查詢輪廓的函式會修改...

查詢並繪製輪廓 OpenCV 筆記XX

好久沒有更新了,原諒自己放了個假最近又在趕進度,所以。更新的內容是很靠後的第八章,因為最近工作要用就先跳了,後面會更新筆記編號。加油加油!在二值影象中尋找輪廓 void cv findcontours inputoutputarray image,outputarrayofarrays contou...