OpenCV 橢圓擬合fitEllipse

2021-08-09 21:29:29 字數 1515 閱讀 1291

本文的主要參考為官方文件opencv249-fitellipse和部落格-opencv中的橢圓擬合

以及《learning opencv 3》page424-425

opencv中提供的橢圓擬合api如下:

rotatedrect fitellipse(inputarray points)
輸入:二維點集,

要求擬合的點至少為6個點。儲存在std::vector<> or mat

處理:該函式使用的是最小二乘的方法進行擬合的。參考**:《direct least square fitting of ellipses》

輸出:rotatedrect 型別的矩形,是擬合出橢圓的最小外接矩形。

繪製橢圓用到的api如下,官方文件opencv249-ellipse

void ellipse(mat& img, point center, size axes, double angle, double startangle, double endangle, const scalar& color, int thickness=1, int linetype=8, int shift=0)

void ellipse(mat& img, const rotatedrect& box, const scalar& color, int thickness=1, int linetype=8)

對應的引數可參見下圖:

示例**如下:

imshow("原圖", src_image);

//輪廓

vector> contours;

//使用canny檢測出邊緣

mat edge_image;

canny(src_image,edge_image,30,70);

imshow("canny邊緣",edge_image);

//邊緣追蹤,沒有儲存邊緣的組織結構

mat cimage = mat::zeros(edge_image.size(), cv_8uc3);

for(size_t i = 0; i < contours.size(); i++)

imshow("擬合結果", cimage);

waitkey();

return 0;

}

opencv 橢圓擬合

include cv.h include highgui.h include using namespace std int slider pos 23 閾值 iplimage image02 0,image03 0,image04 0 void process image int h int ma...

opencv橢圓擬合

目標 通過橢圓擬合求出目標長短軸 思路 先用canny計算出待擬合橢圓的邊界座標,opencv中fitellipse函式可通過最小二乘法來擬合乙個橢圓使得點盡量在橢圓上。如上圖,右邊是拖過canny計算出邊界點資訊,左圖是擬合出來的橢圓。以下作引數說明 def fit ellipse img edg...

opencv中的橢圓擬合

首先貼乙個最簡單的程式 訪問 建立乙個用於繪製影象的空白圖 cv mat image cv mat ones 480,640,cv 8uc3 設定藍色背景 image.setto cv scalar 100,0,0 輸入擬合點 std vectorpoints points.push back cv...