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...