opencv 25 輪廓特徵屬性及應用之矩

2021-09-25 11:11:54 字數 2771 閱讀 9288

double pointpolygontest( inputarray contour, point2f pt, bool measuredist );
///計算點到輪廓的距離與位置關係

mat srcimg = imread("d:\\1\\00.png");

imshow("src", srcimg);

cvtcolor(srcimg, srcimg, cv_bgr2gray);

threshold(srcimg, srcimg, 100, 255, cv_thresh_binary);

imshow("threshold", srcimg);

vector> contours;

vectorhierarcy;

//輸出輪廓數目

array: 輸入引數, 可以是光柵影象或二維陣列 

binaryimage:預設值false, 非零畫素取其本身值, 若為true, 則非零畫素取1 

返回值: moments類的物件, 返回對應的輪廓的空間矩/中心矩和歸一化中心矩(最高3階), 如下: 

注意matchshapes()函式比較輪廓相似度是基於hu矩來計算的, 結果越小相似度越高。 

hu矩是歸一化中心矩的線性組合, 是為了獲取影象某個特徵的矩函式(對應變化如平移、縮放、旋轉、映象)

mat srcimg = imread("d:\\1\\1.jpg");  //讀取模板影象

imshow("src", srcimg);

cvtcolor(srcimg, srcimg, cv_bgr2gray);

threshold(srcimg, srcimg, 100, 255, cv_thresh_binary);

vector> contours;

vectorhierarcy;

mat srcimg2 = imread("d:\\1\\2.jpg"); //讀取待測試

1.mat srcimg = imread("d:\\1\\1.jpg"); //讀取模板影象

imshow("src", srcimg);

cvtcolor(srcimg, srcimg, cv_bgr2gray);

threshold(srcimg, srcimg, 100, 255, cv_thresh_binary);

vector> contours;

vectorhierarcy;

模板影象和待測影象的處理方式必須相同

opencv學習(四)輪廓識別

本章學習輪廓識別 bbb.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std using namespace cv int tmain size refs size int captrefrnc.get cv cap prop...

opencv學習 9 輪廓提取

輪廓提取 主要針對二值影象 1 輪廓分為外輪廓和內輪廓 如下圖 外輪廓以c開頭 內輪廓以h開頭 其中img是二值影象,storage是記憶體儲存序列,contours指向儲存的第乙個輪廓,cvmemstorage storage cvcreatememstorage 0 記憶體儲存序列 cvseq ...

opencv 9 輪廓 性質

邊界矩形的寬高比 x,y,w,h cv2.boundingrect cnt aspect ratio float w h輪廓面積與邊界矩形面積的比 area cv2.contourarea cnt x,y,w,h cv2.boundingrect cnt rect area w h extent f...