OpenCV 輪廓及矩形框提取

2021-10-11 19:53:12 字數 1830 閱讀 8635

參考:opencv3/c++輪廓的提取與篩選

#define _crt_secure_no_warnings

#include

#include

#include

using

namespace cv;

using

namespace xfeatures2d;

using

namespace std;

intmain()

cvtcolor

(test, testgray, cv_bgr2gray)

;namedwindow

("[2]灰度化");

imshow

("[2]灰度化"

, testgray)

;threshold

(testgray, testbi,70,

255, cv_thresh_binary)

;//可修改閾值

namedwindow

("[3]二值化");

imshow

("[3]二值化"

, testbi)

;//膨脹

mat testswell;

int g_nstructelementsize =1;

//結構元素(核心矩陣)的尺寸

mat element =

getstructuringelement

(morph_rect,

size(2

* g_nstructelementsize +1,

2* g_nstructelementsize +1)

,point

(g_nstructelementsize, g_nstructelementsize));

dilate

(testbi, testswell, element)

;namedwindow

("[5]膨脹");

imshow

("[5]膨脹"

, testswell)

; src = testswell;

dst = mat::

zeros

(src.

size()

, cv_8uc3)

;//canny(src, src, 20, 80, 3, false);

std::vector<:vector>> contours;

std::vector hierarchy;

findcontours

point(0

,0))

; std::vector

boundrect

(contours.

size()

);//定義外接矩形集合

opencv提取外部輪廓並在外部加矩形框

這段時間一直在用opencv搞影象處理的問題,發現雖然可呼叫的函式多,但是直接找相應 還是很困難,就行尋找連通域,並在連通域外側加框,對於習慣使用mat矩形操作的我,真心感覺 少之又少,為防止以後自己還會用到,特在此記錄一下。要對下面的影象進行字元的邊緣檢測。程式中具體的步驟為 1 灰度化 二值化 ...

opencv畫矩形框

rectangle 畫矩形 c mat類 void rectangle mat img,point pt1,point pt2,const scalar color,int thickness 1,int linetype 8,int shift 0 void rectangle mat img,c...

opencv 對於矩形框的操作

如果建立乙個rect物件rect 100,50,50,100 那麼rect會有以下幾個功能 rect.area 返回rect的面積 5000 rect.size 返回rect的尺寸 50 100 rect.tl 返回rect的左上頂點的座標 100,50 rect.br 返回rect的右下頂點的座標...