特徵(moment、contourArea、arcLength)

    xiaoxiao2021-03-25  115

    找出物體輪廓後,我們可以根據這個輪廓,找出這個物體的一些特徵,這邊用OpenCV的moment()、contourArea()、arcLength()函式,來找輪廓的質心、周長、面積,而這些特徵可以作為物件辨識的資訊。


    OpenCV計算矩

    Moments moments(InputArray array, bool binaryImage=false)

    array:來源圖,可以輸入8位元單通道圖、浮點數2維陣列,或1xN、Nx1的Point或Point2f陣列。binaryImage:影像設定,只有array為影像時才有效果,如果設定為true,所有非零的像素都列入計算。可從Moments計算質心位置。

    假設返回一個Moments mu,我們可依據下式,從mu計算質心位置,m10、m00、m01、m00都是Moments的類別成員。

    Point2f center = Point2f(mu.m10/mu.m00 , mu.m01/mu.m00);

    OpenCV計算面積

    double contourArea(InputArray contour, bool oriented=false)

    contour:輸入輪廓,一個含有2維點的vector。oriented:輪廓方向,如果設為ture的話除了面積還會記錄方向,順時鐘和逆時鐘會有正負號的差異,預設為false,不論輪廓方向都返回正的面積值。

    OpenCV計算周長:

    double arcLength(InputArray curve, bool closed)

    curve:輸入輪廓,一個含有2維點的vector。closed:輪廓封閉,指定curve是否封閉,返回曲線的長度或封閉輪廓的周長。

    转自:http://monkeycoding.com/?p=617

    转载请注明原文地址: https://ju.6miu.com/read-11978.html

    最新回复(0)