C 中OpenCVSharp實現輪廓檢測

2022-09-26 01:39:12 字數 996 閱讀 7039

opencv提供了函式 findcontours()用於對物體輪廓進行檢測,該函式實現演算法是由s.suzuki k.abe於2023年發表的。opencvsharp封裝了這個函式,有2個引數(contours,hierarchy)要做特別的說明。

public static void findcontours(inputoutputarray image, out point contours,

out hierarchyindex hierarchy, retrievalmodes mode,

contourapproximationmodes method, point? offset = null);

解析:contours 的型別是point,它相當於opencv中的vector> contours,儲存多個輪廓,每個輪廓是由若干個點組成,可以在該函式前宣告point contours;,在c#中沒有賦值的變數在用的時候是不允許的,因為它是輸出的結果程式設計客棧,可以不需要給它new空間,但必須在函式的引數中宣告是out;引數hierarwww.cppcns.comchy為包含影象拓撲結構的資訊,它是hierarchyindex型別,這是輸入的結果,同樣要在函式的引數中宣告為out。具體**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using opencvsharp;

using opencvsharp.extensions;

namespace opencvsharp_03

public static mat myfindcontours(www.cppcns.commat srcimage)

return dst_image;}}}

我封裝好了myfindcontours()這個函式,方便大家呼叫進行測試

測試結果如下:

Opencvsharp中關於霍夫變換直線檢測的使用

在opencvsharp中很多api的寫法跟c 中有所不同不同,比如在霍夫直線檢測cv2.houghlinesp這個api中返回的是乙個linesegmentpoint,而非乙個vec4i的陣列 所以首先建立乙個linesegmentpoint型別的陣列作為接收,再呼叫cv2.houghlinesp...

C 借助OpenCvSharp讀取攝像頭並顯示

1,首先要安裝opencvsharp,使用cv2的函式獲取裝置,並將影象轉換到bitmap using opencvsharp using opencvsharp.extensions void run cap 2,在呼叫時開啟執行緒,可以在主函式內呼叫,也可在按鈕內呼叫 private void ...

C 中實現介面排序

icomparable介面和icomparable介面 實現兩個物件之間的比較 介面將會實現compareto object obj 和compareto student student 如下 public int compareto object obj 案例 class student icom...