在相近背景中找圓和直線

2021-09-25 05:39:08 字數 2157 閱讀 1455

找到上圖中緊固線和螺栓的位置

#include #include #include #include using namespace std;

using namespace cv;

mat srcimage, canimage, grayimage, threimage, dstimage, dstimage1, dstimage2;

int size;

void finding(int, void*)

// vectorlines;

// houghlinesp(canimage, lines, 1, cv_pi / 180, 100, 100, 50);

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

// namedwindow("直線效果圖", 0);

// imshow("直線效果圖", dstimage1);

// cvtcolor(canimage, dstimage2, cv_gray2bgr);//轉化邊緣檢測後的圖為灰度圖

vectorcircles;

//霍夫圓變換

/* 第乙個引數,inputarray型別的image,輸入影象,即源影象,需為8位的灰度單通道影象。

第二個引數,inputarray型別的circles,經過呼叫houghcircles函式後此引數儲存了檢測到的圓的輸出向量,

每個向量由包含了3個元素的浮點向量(x, y, radius)表示。

第三個引數,int型別的method,即使用的檢測方法,目前opencv中就霍夫梯度法一種可以使用,它的識別符號為

cv_hough_gradient,在此引數處填這個識別符號即可。

第四個引數,double型別的dp,用來檢測圓心的累加器影象的解析度於輸入影象之比的倒數,且此引數允許建立

乙個比輸入影象解析度低的累加器。上述文字不好理解的話,來看例子吧。例如,如果dp= 1時,

累加器和輸入影象具有相同的解析度。如果dp=2,累加器便有輸入影象一半那麼大的寬度和高度。

第五個引數,double型別的mindist,為霍夫變換檢測到的圓的圓心之間的最小距離,即讓我們的演算法能明顯區分的

兩個不同圓之間的最小距離。這個引數如果太小的話,多個相鄰的圓可能被錯誤地檢測成了乙個重合的

圓。反之,這個引數設定太大的話,某些圓就不能被檢測出來了。

第六個引數,double型別的param1,有預設值100。它是第三個引數method設定的檢測方法的對應的引數。對當前

唯一的方法霍夫梯度法cv_hough_gradient,它表示傳遞給canny邊緣檢測運算元的高閾值,而低閾值為高閾值的一半。

第七個引數,double型別的param2,也有預設值100。它是第三個引數method設定的檢測方法的對應的引數。對當前

唯一的方法霍夫梯度法cv_hough_gradient,它表示在檢測階段圓心的累加器閾值。它越小的話,就可以檢測到更多

根本不存在的圓,而它越大的話,能通過檢測的圓就更加接近完美的圓形了。

第八個引數,int型別的minradius,有預設值0,表示圓半徑的最小值。

第九個引數,int型別的maxradius,也有預設值0,表示圓半徑的最大值。*/

houghcircles(canimage, circles, cv_hough_gradient, 1, canimage.rows / 5, 100, 30, 0, 50);

//在原圖中畫出圓心和圓

for (size_t j = 0; j < circles.size(); j++)

// namedwindow("圓效果圖", 0);

// imshow("圓效果圖", dstimage2);

namedwindow("效果圖", 0);

imshow("效果圖", dstimage);

調節閾值可以達到初步的效果

在 輸 中找贏

贏即是輸,輸即是贏,因為輸贏和恩怨連在一起。在人與人之間,應該多輸少贏,以免無端生是非,如能用 輸 去 贏 人生就更加美好。郭君是個中小企業的負責人,和客戶來往,他有特別的一套。郭君酒量不錯,也很會猜拳,可是每次和客戶應酬,他都謹守著 與其自己喝醉,不如被灌醉 以及猜拳時 輸三拳,輸兩拳,全輸最好 ...

怎麼在Word中找MathType選單

一些使用者朋友在使用word的過程中,發現自己突然找不到mathtype公式編輯器 解決方法如下 1.先解除安裝mathtype再重新安裝mathtype,mathtype會在相應office surpport目錄下新增wordcmds.dot,mathtype commands 6 for wor...

怎樣在幾何畫板中調節相交圓

在幾何畫板中我們通過圓工具可以輕易的畫出圓,相交圓也可以很容易的繪製出來,但是這樣畫出的相交圓無法進行調整,那麼我們該如何畫幾何畫板中的相交圓,並且使所畫的相交圓可調節位置跟大小呢?具體操作步驟如下 1.確定圓心。單擊左邊側邊欄 自定義工具 圓工具 兩相交圓公共部分 先單擊一下,在畫布空白處確定乙個...