opencv基礎之測試質心和圓形度

2021-08-07 16:13:07 字數 1510 閱讀 5731

#include

#include"opencv2\opencv.hpp"

#include

using

namespace

std;

using

namespace cv;

rng g_rng(12345);

int g_nelementshape=morph_rect;

mat srcimage, dstimage;

void centerpoints(vector

contour);

int main()

namedwindow("原圖");

imshow("原圖", srcimage);

//進行開運算平滑

//namedwindow("【開運算/閉運算】", 1);

mat dstimage = mat::zeros(srcimage.rows, srcimage.cols, cv_8uc3);

mat element = getstructuringelement(g_nelementshape,

size(5, 5), point(-1, -1));

morphologyex(srcimage, dstimage, morph_open, element, point(-1, -1),2);

imshow("【開運算/閉運算】", dstimage);

vector

>contour;//用來儲存輪廓

vector

hierarchy;

for (unsigned

int i = 0; i < contour.size(); ++i)

mat drawing = mat::zeros(dstimage.size(), cv_8uc3);

for (int

unsigned i = 0; i < contour.size(); i++)

imshow("輪廓圖", drawing);//畫出輪廓線,在輪廓線上顯示座標

//計算矩

vector

mu(contour.size());

for (unsigned

int i = 0; i < contour.size(); i++)

//計算矩中心

vector

mc(contour.size());

for (unsigned

int i = 0; i < contour.size(); i++)

for (unsigned

int i = 0; i< contour.size(); ++i)

namedwindow("contours", window_autosize);

imshow("contours", drawing);

waitkey(0);

return0;}

void centerpoints(vector

contour)

OpenCV之圓的檢測識別

整個具體流程大概是獲取影象 影象二值化,灰度圖 cvtcolor 影象降噪 gaussianblur 輪廓識別 cvfindcontours 形狀判斷 在識別圓方面,opencv有內建的方法即霍夫圓變化 houghcircles edges,circles,cv hough gradient,1.5...

opencv之霍夫變換圓檢測

霍夫變換就是將平面影象轉換到霍夫空間 極座標 進行特徵計算 圓的幾何標準方程 x a 2 y b 2 r 2 x a 2 y b 2 r 2 x a 2 y b 2 r2圓的極座標方程 x a rco s x a rcos theta x a rc os y b rs in y b rsin the...

Opencv實現最小外接矩形和圓

步驟 將一幅影象先轉灰度,再canny邊緣檢測得到二值化邊緣影象,再尋找輪廓,輪廓是由一系列點構成的,要想獲得輪廓的最小外接矩形,首先需要得到輪廓的近似多邊形,用程式設計客棧道格拉斯 普克抽稀 dp 演算法,道格拉斯 普克抽稀演算法,是將曲線近似表示為一系列點,並減少點的數量的一種演算法。該演算法實...