OpenCV學習三十二 HU矩以及Zernike矩

2021-08-25 11:37:40 字數 1025 閱讀 4792

cv::moments (inputarray  array,bool binaryimage = false)
array:輸入陣列,可以是光柵影象(單通道,8-bit或浮點型二維陣列),或者是乙個二維陣列(1 x n或n x 1),二維陣列型別為point或point2f(我記得這裡輸入二值和 findcontours 的結果 contours[i]逐個輸入 都可以)

binaryimage:預設值是false,如果為true,則所有非零的畫素都會按值1對待,也就是說相當於對影象進行了二值化處理,閾值為1,此引數僅對影象有效。

void humoments(const moments& moments, double* hu)¶
const moments&moments:moments的輸出double*hu:的計算結果

#include #include #include using namespace std;

using namespace cv;

int main(int argc, char** argv)

{ // 第一種寫法

mat image = imread("./image/shape_0.png");

cvtcolor(image, image, cv_bgr2gray);

moments mts = moments(image);

double hu[7];

humoments(mts, hu);

for (int i=0; i<7; i++)

{ cout << log(abs(hu[i])) <> contours;

vectorhierachy;

for (int i=0; i

OpenCV實戰之基於Hu矩實現輪廓匹配

目錄 本文將使用opencv c 基於hu矩進行輪廓匹配。原圖測試圖 vector findcontour mat image return effectconts 如圖所示,這就是找到的最外輪廓。接下來,我們基於輪廓進行匹配。opencv提供moments api計算影象的中心矩 humoment...

CUDA學習(三十二)

本地記憶體 本地記憶體訪問只對一些自動變數發生,如可變記憶體空間說明符中所述。編譯器可能在本地記憶體中放置的自動變數是 檢查ptx彙編 通過使用 ptx orkeep選項編譯獲得 將會告訴在第乙個編譯階段變數是否被放置在本地記憶體中,因為它將使用.local助記符進行宣告,並使用ld.local進行...

Linux學習(三十二)screen

我們可以將screen看成乙個子視窗,我們可以通過命令將這個子視窗放入後台執行而不關閉它。當我們有需要時,我們還可以將它調出來。安裝 yum y install screen開啟乙個screen視窗 screen vmstat 1按ctrl a d將screen放入後台 root ruanwenwu...