opencv學習之尋找凸包,使用多邊形包圍輪廓

2021-07-26 11:53:12 字數 3434 閱讀 4757

#include"stdafx.h"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include using namespace cv;

using namespace std;

#define window_name1 "【原始圖視窗】"

#define window_name2 "【效果圖視窗】"

mat g_srcimage; mat g_grayimage;

int g_nthresh = 50;

int g_maxthresh = 255;

rng g_rng(12345);

mat srcimage_copy = g_srcimage.clone();

mat g_thresholdimage_output;

vector> g_vcontours;

vectorg_vhierarchy;

void on_threshchange(int, void*);

int main()

void on_threshchange(int, void*)

// 繪出輪廓及其凸包

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

for (unsigned int i = 0; i< g_vcontours.size(); i++)

// 顯示效果圖

#define window_name1 "【原始圖視窗】"

#define window_name2 "【效果圖視窗】"

mat g_srcimage; mat g_grayimage;

int g_nthresh = 50;

int g_maxthresh = 255;

rng g_rng(12345);

mat srcimage_copy = g_srcimage.clone();

mat g_thresholdimage_output;

vector> g_vcontours;

vectorg_vhierarchy;

void on_threshchange(int, void*);

int main()

//給定2d點集,尋找最小面積包圍矩形

rotatedrect box = minarearect(mat(points));

point2f vertex[4];

box.points(vertex);

//繪製出隨機的點

image = scalar::all(0);

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

//繪製最小面積的包圍矩形

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

imshow("【矩形包圍圖】", image);

#define window_name1 "【原始圖視窗】"

#define window_name2 "【效果圖視窗】"

mat g_srcimage; mat g_grayimage;

int g_nthresh = 50;

int g_maxthresh = 255;

rng g_rng(12345);

mat srcimage_copy = g_srcimage.clone();

mat g_thresholdimage_output;

vector> g_vcontours;

vectorg_vhierarchy;

void on_threshchange(int, void*);

int main()

//給定2d點集,尋找最小面積包圍圓

point2f center;

float radius = 0;

minenclosingcircle(mat(points), center, radius);

//繪製出隨機的點

image = scalar::all(0);

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

//繪製最小面積的包圍矩形

circle(image, center, cvround(radius), scalar(rng.uniform(0, 255),

rng.uniform(0, 255), rng.uniform(0, 255)), 2, line_aa);

imshow("【矩形包圍圖】", image);

OpenCv 尋找凸包convexHull

凸包 convex hull 是乙個計算幾何 圖形學 中的概念,在乙個實數向量空間v中,對於給定集合x,所有包含x的凸集的交集s被稱為x的凸包。x的凸包可以用x內所有點 x1,x2 xn 的線性組合來構造。在二維歐幾里得空間中,凸包可以想象為一條剛好包著所有點的橡皮圈,用不嚴謹的話來講,給定二維平面...

OpenCV學習筆記(十五)之凸包

老規矩 妹妹鎮樓 輸入候選點,來自findcontours outputarray hull,凸包 bool clockwise,順時針方向 bool returnpoints,true表示返回點個數,如果第二個引數是vector則自動忽略 首先把影象從rgb轉為灰度影象 轉為二值影象 通過發現輪廓...

ACM 尋找凸包

尋找凸包 點集q的凸包ch q 是乙個最小的凸多邊形p,它滿足q中的每個點或者在p的邊界上,或者在p的內部。現對於給定的點集q,求q的凸包ch q 的頂點集合。輸入 輸入有若干組測試資料。每一組測試資料的第一行上有整數n,表示該組測試資料有n個點組成的。接下來有n行,其每一行上有二個正整數,之間用乙...