1、api介紹;
2、**演示;
3、旋轉矩形api :cv::minarearect()
: 得到包含輪廓的旋轉矩形;
4、輪廓最小區域圓形繪製api :cv::minenclosingcircle()
; enclosing : 封閉的,包捲的
5、輪廓最小區域橢圓繪製api :cv::fitellipse()
;
1、將影象轉換為二值影象;
2、發現輪廓,找到輪廓影象;
3、通過相關api在輪廓點上找到最小包含矩形和圓,旋轉矩形和橢圓;
4、繪製;
#include
#include
using
namespace std;
using
namespace cv;
mat src, gray_src, drawimg;
int threshold_v =
124;
int threshold_max =
255;
rng rng
(12345);
const
char
* output_win =
"rectangle demo"
;const
char
* input_win =
"input image"
;void
contours_callback
(int
,void*)
;int
main
(int argc,
char
** ar**)
cvtcolor
(src, gray_src, cv_bgr2gray)
;blur
(gray_src, gray_src,
size(3
,3),
point(-
1,-1
), border_default)
;//均值模糊
namedwindow
(output_win, cv_window_autosize)
;namedwindow
(input_win, cv_window_autosize)
;imshow
(input_win, gray_src)
;createtrackbar
("threshold value :"
, input_win,
&threshold_v, threshold_max, contours_callback,0)
;contours_callback
(threshold_v,0)
;waitkey(0
);return0;
}void
contours_callback
(int
,void*)
}//繪製包含輪廓的矩形和圓
drawimg = mat::
zeros
(src.
size()
, src.
type()
);//可以選擇拷貝原圖,還是建立黑色背景圖形
point2f pts[4]
;for
(size_t t =
0; t < contours.
size()
; t++)}
}imshow
(output_win, drawimg)
;return
;}
1、原圖:(閾值發現124最合適)
2、二值影象:
3、繪製影象:
OpenCV29 輪廓周圍繪製矩形框和圓形框
三 十 輪廓周圍繪製矩形框和圓形框 作用是把乙個很多點的多邊形變成乙個點數適中的多邊形,在這個多邊形裡面找它的最小連線矩形和最小的圓。inputarray curve,輸入乙個多邊形 點 輸出乙個處理後的多邊形 點 double epsilon,表示兩點之間的最小距離,小於這個距離捨去,大於這個距離...
18輪廓 繪製方形,原型
用cvseq的函式建立圓和矩形,這兩個影象用點序列來表示。有關序列的讀寫方法可以自行學習,這裡只給出乙個示例 include include include using namespace std using namespace cv define cvx red cv rgb 0xff,0x00,...
21 22輪廓繪製(EmguCV學習)
輪廓近似方法 3 cvinvoke.drawcontours 函式 contouridx 控制繪製當前輪廓i,如果為負值,則繪製所有輪廓 thickness 繪製線寬,如果為負,則填充輪廓 hierarchy 輪廓的層次結構資訊 maxlevel 控制是否繪製當前輪廓之外的輪廓 需要有hierarc...