免費最好網(wǎng)站建設(shè),百度明星搜索量排行榜,小區(qū)網(wǎng)站建設(shè),崗頂網(wǎng)站設(shè)計OpenCvSharp 是 OpenCV 的NET封裝,提供了豐富的圖像處理和計算機(jī)視覺功能。以下是一些常用函數(shù)及其詳細(xì)說明。 1. 圖像讀取與顯示
Cv2.ImRead
功能:讀取圖像文件并返回一個 Mat 對象。用法:Mat image Cv2.ImRead("path/to/image.jpg&…OpenCvSharp 是 OpenCV 的NET封裝,提供了豐富的圖像處理和計算機(jī)視覺功能。以下是一些常用函數(shù)及其詳細(xì)說明。

1. 圖像讀取與顯示
Cv2.ImRead
- 功能:讀取圖像文件并返回一個 Mat 對象。
- 用法:
- Mat image = Cv2.ImRead("path/to/image.jpg");
Cv2.ImShow
- 功能:在窗口中顯示圖像。
- 用法:
- Cv2.ImShow("Window Name", image);
Cv2.WaitKey
- 功能:等待鍵盤輸入,通常用于暫停窗口。
- 用法:
- Cv2.WaitKey(0);?// 等待任意鍵
2. 圖像處理
Cv2.CvtColor
- 功能:轉(zhuǎn)換圖像顏色空間(如 BGR 轉(zhuǎn)灰度、RGB 轉(zhuǎn) HSV 等)。
- 用法:
- Mat grayImage =?new?Mat();
- Cv2.CvtColor(image, grayImage, ColorConversion.BgrToGray);
Cv2.GaussianBlur
- 功能:對圖像應(yīng)用高斯模糊,減少噪聲。
- 用法:
- Mat blurredImage =?new?Mat();
- Cv2.GaussianBlur(image, blurredImage,?new?Size(5,?5),?0);
Cv2.Canny
- 功能:使用 Canny 算法進(jìn)行邊緣檢測。
- 用法:
- Mat edges =?new?Mat();
- Cv2.Canny(grayImage, edges,?100,?200);
3. 圖像變換
Cv2.Resize
- 功能:調(diào)整圖像大小。
- 用法:
- Mat resizedImage =?new?Mat();
- Cv2.Resize(image, resizedImage,?new?Size(200,?200));
Cv2.Rotate
- 功能:旋轉(zhuǎn)圖像。
- 用法:
- Mat rotatedImage =?new?Mat();
- Cv2.Rotate(image, rotatedImage, RotateFlags.Rotate90Clockwise);
Cv2.WarpAffine
- 功能:對圖像進(jìn)行仿射變換。
- 用法:
- Mat transformedImage =?new?Mat();
- Mat M = Cv2.GetRotationMatrix2D(new?Point2f(image.Width /?2, image.Height /?2),?45,?1);
- Cv2.WarpAffine(image, M, image.Size(), transformedImage);
4. 形態(tài)學(xué)操作
Cv2.Erode
- 功能:腐蝕操作,減少圖像中的白色區(qū)域。
- 用法:
- Mat erodedImage =?new?Mat(); Cv2.Erode(binaryImage, erodedImage,?null,?new?Point(-1,?-1),?1);
Cv2.Dilate
- 功能:膨脹操作,增加圖像中的白色區(qū)域。
- 用法:
- Mat dilatedImage =?new?Mat(); Cv2.Dilate(binaryImage, dilatedImage,?null,?new?Point(-1,?-1),?1);
5. 特征檢測與描述
Cv2.FindContours
- 功能:查找圖像中的輪廓。
- 用法:
- Cv2.FindContours(binaryImage,?out?Point[][] contours,?out?HierarchyIndex[] hierarchy, RetrievalModes.Tree, ContourApproximation.Simple);
Cv2.DrawContours
- 功能:在圖像上繪制輪廓。
- 用法:
- Cv2.DrawContours(image, contours,?-1, Scalar.Red,?2);
6. 物體檢測與識別
CvDnn.ReadNetFromDarknet
- 功能:從 Darknet 配置文件和權(quán)重文件加載 YOLO 模型。
- 用法:
- var?net = CvDnn.ReadNetFromDarknet("yolov4.cfg",?"yolov4.weights");
CvDnn.BlobFromImage
- 功能:將圖像轉(zhuǎn)換為網(wǎng)絡(luò)輸入格式的 blob。
- 用法:
- var?blob = CvDnn.BlobFromImage(image,?1?/?255.0,?new?Size(416,?416),?new?Scalar(0,?0,?0),?true,?false);
CvDnn.Forward
- 功能:執(zhí)行前向推理。
- 用法:
- var?output = net.Forward();
7. 其他實用函數(shù)
Cv2.PutText
- 功能:在圖像上繪制文本。
- 用法:
- Cv2.PutText(image,?"Hello, OpenCV!",?new?Point(10,?30), HersheyFonts.HersheySimplex,?1, Scalar.White,?2);
Cv2.Rectangle
- 功能:在圖像上繪制矩形。
- 用法:
- Cv2.Rectangle(image,?new?Rect(50,?50,?100,?100), Scalar.Red,?2);
Cv2.Circle
- 功能:在圖像上繪制圓形。
- 用法:
- Cv2.Circle(image,?new?Point(100,?100),?50, Scalar.Blue,?2);
8. 視頻處理
Cv2.VideoCapture
- 功能:打開視頻文件或攝像頭進(jìn)行視頻捕捉。
- 用法:
- using?(var?capture =?new?VideoCapture(0))?// 0 表示默認(rèn)攝像頭
- {
- Mat frame =?new?Mat();
- while?(true)
- {
- capture.Read(frame);
- if?(frame.Empty())?break; Cv2.ImShow("Video", frame);
- if?(Cv2.WaitKey(30) >=?0)?break;?// 每幀延遲 30ms
- }
- }
Cv2.VideoWriter
- 功能:將圖像序列寫入視頻文件。
- 用法:
- using?(var?writer =?new?VideoWriter("output.avi", FourCC.MJPG,?30,?new?Size(640,?480)))
- {?for?(int?i =?0; i <?100; i++)
- {
- Mat frame =?new?Mat(480,?640, MatType.CV_8UC3,?new?Scalar(0,?0,?255));?// 創(chuàng)建紅色幀?writer.Write(frame);
- }
- }
9. 顏色空間轉(zhuǎn)換
Cv2.Split
- 功能:將多通道圖像分離為單通道圖像。
- 用法:
- Mat[] channels = Cv2.Split(image); Mat blueChannel = channels[0];?// 藍(lán)色通道
- Mat greenChannel = channels[1];?// 綠色通道?Mat redChannel = channels[2];?// 紅色通道
Cv2.Merge
- 功能:將多個單通道圖像合并為多通道圖像。
- 用法:
- Mat mergedImage =?new?Mat();
- Cv2.Merge(channels, mergedImage);
10. 直方圖處理
Cv2.CalcHist
- 功能:計算圖像的直方圖。
- 用法:
- int[] histSize = {?256?};?// 256 個 bins?float[] ranges = {?0,?256?};?// 像素值范圍
- Mat hist =?new?Mat(); Cv2.CalcHist(new?Mat[] { grayImage },?new?int[] {?0?},?null, hist,?1, histSize,?new?Rangef[] {?new?Rangef(0,?256) });
Cv2.Normalize
- 功能:歸一化直方圖。
- 用法:
- Cv2.Normalize(hist, hist,?0,?255, NormTypes.MinMax);
11. 特征匹配
Cv2.DescribeKeypoints
- 功能:描述關(guān)鍵點特征。
- 用法:
- var?orb = ORB.Create(); KeyPoint[] keypoints; Mat descriptors =?new?Mat(); orb.DetectAndCompute(image,?null,?out?keypoints, descriptors);
Cv2.BFMatcher
- 功能:使用暴力匹配器進(jìn)行特征匹配。
- 用法:
- var?matcher =?new?BFMatcher(NormTypes.Hamming, crossCheck:?true);
- var?matches =?new?Mat();
- matcher.Match(descriptors1, descriptors2, matches);
12. 輪廓分析
Cv2.ApproxPolyDP
- 功能:對輪廓進(jìn)行多邊形逼近。
- 用法:
- Point[] approx = Cv2.ApproxPolyDP(contour,?0.02?* Cv2.ArcLength(contour,?true),?true);
Cv2.Hierarchy
- 功能:獲取輪廓的層次結(jié)構(gòu)。
- 用法:
- Cv2.FindContours(image,?out?Point[][] contours,?out?HierarchyIndex[] hierarchy, RetrievalModes.Tree, ContourApproximation.Simple);
13. 機(jī)器學(xué)習(xí)與深度學(xué)習(xí)
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
14. 其他實用功能
Cv2.GetRotationMatrix2D
- 功能:獲取旋轉(zhuǎn)矩陣,用于圖像旋轉(zhuǎn)。
- 用法:
- Mat M = Cv2.GetRotationMatrix2D(new?Point2f(image.Width /?2, image.Height /?2),?45,?1);
Cv2.GetPerspectiveTransform
- 功能:獲取透視變換矩陣。
- 用法:
- Point2f[] srcPoints = {?new?Point2f(0,?0),?new?Point2f(1,?0),?new?Point2f(0,?1) };
- Point2f[] dstPoints = {?new?Point2f(0,?0),?new?Point2f(1,?0),?new?Point2f(0,?1) };
- Mat perspectiveMatrix = Cv2.GetPerspectiveTransform(srcPoints, dstPoints);
15. 處理圖像的 ROI(感興趣區(qū)域)
Mat.RegionOfInterest
- 功能:提取圖像的感興趣區(qū)域。
- 用法:
- Mat roi =?new?Mat(image,?new?Rect(50,?50,?100,?100));?// 提取 (50, 50) 開始的 100x100 區(qū)域
16. 圖像濾波
Cv2.MedianBlur
- 功能:使用中值濾波去除圖像噪聲,特別適合去除椒鹽噪聲。
- 用法:
- Mat medianBlurredImage =?new?Mat(); Cv2.MedianBlur(image, medianBlurredImage,?5);?// 5 是濾波器大小
Cv2.BilateralFilter
- 功能:雙邊濾波,能夠在平滑圖像的同時保留邊緣。
- 用法:
- Mat bilateralFilteredImage =?new?Mat();
- Cv2.BilateralFilter(image, bilateralFilteredImage,?9,?75,?75);
17. 直方圖均衡化
Cv2.EqualizeHist
- 功能:對灰度圖像進(jìn)行直方圖均衡化,增強(qiáng)對比度。
- 用法:
- Mat equalizedImage =?new?Mat();
- Cv2.EqualizeHist(grayImage, equalizedImage);
18. 輪廓特征提取
Cv2.Moments
- 功能:計算輪廓的矩,用于特征提取。
- 用法:
- var?moments = Cv2.Moments(contour);
- double?area = moments.M00;?// 輪廓面積
Cv2.MinEnclosingCircle
- 功能:計算包圍輪廓的最小圓。
- 用法:
- Cv2.MinEnclosingCircle(contour,?out?Point2f center,?out?float?radius);
19. 形狀匹配
Cv2.MatchShapes
- 功能:比較兩個輪廓的形狀,返回相似度。
- 用法:
- double?similarity = Cv2.MatchShapes(contour1, contour2, ShapeMatchModes.I1,?0);
20. 透視變換
Cv2.WarpPerspective
- 功能:應(yīng)用透視變換到圖像。
- 用法:
- Mat warpedImage =?new?Mat();
- Mat perspectiveMatrix = Cv2.GetPerspectiveTransform(srcPoints, dstPoints);
- Cv2.WarpPerspective(image, warpedImage, perspectiveMatrix,?new?Size(width, height));
21. 顏色空間轉(zhuǎn)換
Cv2.CvtColor
- 功能:轉(zhuǎn)換圖像顏色空間(如 BGR 轉(zhuǎn) HSV、RGB 轉(zhuǎn) LAB 等)。
- 用法:
- Mat hsvImage =?new?Mat();
- Cv2.CvtColor(image, hsvImage, ColorConversion.BgrToHsv);
22. 目標(biāo)跟蹤
Cv2.TrackerKCF
- 功能:使用 KCF 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerKCF.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
23. 關(guān)鍵點檢測
Cv2.GoodFeaturesToTrack
- 功能:檢測圖像中的角點。
- 用法:
- Point2f[] corners = Cv2.GoodFeaturesToTrack(grayImage, maxCorners:?100, qualityLevel:?0.01, minDistance:?10);
24. 直方圖反向投影
Cv2.CalcBackProject
- 功能:計算反向投影,用于目標(biāo)檢測。
- 用法:
- Mat backProject =?new?Mat();
- Cv2.CalcBackProject(new?Mat[] { image },?new?int[] {?0?}, hist, backProject,?new?Rangef[] {?new?Rangef(0,?256) });
25. 顏色空間分離
Cv2.SeparateChannels
- 功能:將多通道圖像分離為單通道圖像。
- 用法:
- Mat[] channels = Cv2.SeparateChannels(image);
26. 直方圖繪制
Cv2.DrawHist
- 功能:繪制直方圖。
- 用法:
- // 需要自定義繪制函數(shù)
- void?DrawHist(Mat hist)
- {
- int?histWidth =?512;
- int?histHeight =?400;
- Mat histImage =?new?Mat(histHeight, histWidth, MatType.CV_8UC3,?new?Scalar(0,?0,?0));
- int?binWidth = (int)Math.Round((double)histWidth / hist.Rows);
- for?(int?i =?1; i < hist.Rows; i++)
- {
- Cv2.Line(histImage,?new?Point(binWidth * (i -?1), histHeight - (int)hist.At<float>(i -?1)),?new?Point(binWidth * i, histHeight - (int)hist.At<float>(i)),?new?Scalar(255,?0,?0),?2);
- }
- Cv2.ImShow("Histogram", histImage);
- }
27. 顏色直方圖比較
Cv2.CompareHist
- 功能:比較兩個直方圖。
- 用法:
- double?correlation = Cv2.CompareHist(hist1, hist2, HistCompMethods.Correl);
28. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
29. 輪廓填充
Cv2.FillPoly
- 功能:填充多邊形區(qū)域。
- 用法:
- Cv2.FillPoly(image,?new?Point[][] { contour },?new?Scalar(255,?0,?0));
30. 直方圖均衡化
Cv2.EqualizeHist
- 功能:對灰度圖像進(jìn)行直方圖均衡化,增強(qiáng)對比度。
- 用法:
- Mat equalizedImage =?new?Mat();
- Cv2.EqualizeHist(grayImage, equalizedImage);
31. 顏色空間轉(zhuǎn)換
Cv2.BGRToGray
- 功能:將 BGR 圖像轉(zhuǎn)換為灰度圖像。
- 用法:
- Mat grayImage =?new?Mat();
- Cv2.BGRToGray(image, grayImage);
Cv2.HsvToBgr
- 功能:將 HSV 圖像轉(zhuǎn)換為 BGR 圖像。
- 用法:
- Mat bgrImage =?new?Mat();
- Cv2.HsvToBgr(hsvImage, bgrImage);
32. 直方圖均衡化
Cv2.CLAHE
- 功能:對比度限制自適應(yīng)直方圖均衡化,增強(qiáng)圖像對比度。
- 用法:
- var?clahe = Cv2.CreateCLAHE(clipLimit:?2.0, tileGridSize:?new?Size(8,?8));
- Mat claheImage =?new?Mat();
- clahe.Apply(grayImage, claheImage);
33. 目標(biāo)檢測與識別
CvDnn.NMSBoxes
- 功能:非極大值抑制,用于去除重疊的邊界框。
- 用法:
- var?indices =?new?List<int>();
- CvDnn.NMSBoxes(boxes, confidences, scoreThreshold:?0.5f, nmsThreshold:?0.4f, indices);
34. 形態(tài)學(xué)操作
Cv2.MorphologyEx
- 功能:執(zhí)行形態(tài)學(xué)操作,如開運(yùn)算、閉運(yùn)算等。
- 用法:
- Mat morphedImage =?new?Mat();
- Cv2.MorphologyEx(binaryImage, morphedImage, MorphTypes.Open,?null);
35. 目標(biāo)跟蹤
Cv2.TrackerCSRT
- 功能:使用 CSRT 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerCSRT.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
36. 關(guān)鍵點描述
Cv2.SIFT
- 功能:使用 SIFT 算法檢測和描述關(guān)鍵點。
- 用法:
- var?sift = SIFT.Create(); KeyPoint[] keypoints; Mat descriptors =?new?Mat();
- sift.DetectAndCompute(image,?null,?out?keypoints, descriptors);
37. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTorch
- 功能:從 Torch 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTorch("model.t7");
38. 輪廓繪制
Cv2.DrawContours
- 功能:在圖像上繪制輪廓。
- 用法:
- Cv2.DrawContours(image, contours,?-1, Scalar.Red,?2);
39. 直方圖計算
Cv2.CalcBackProject
- 功能:計算反向投影,用于目標(biāo)檢測。
- 用法:
- Mat backProject =?new?Mat();
- Cv2.CalcBackProject(new?Mat[] { image },?new?int[] {?0?}, hist, backProject,?new?Rangef[] {?new?Rangef(0,?256) });
40. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
41. 目標(biāo)檢測與識別
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
42. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
43. 目標(biāo)檢測與識別
CvDnn.ReadNetFromDarknet
- 功能:從 Darknet 配置文件和權(quán)重文件加載 YOLO 模型。
- 用法:
- var?net = CvDnn.ReadNetFromDarknet("yolov4.cfg",?"yolov4.weights");
44. 目標(biāo)檢測與識別
CvDnn.BlobFromImage
- 功能:將圖像轉(zhuǎn)換為網(wǎng)絡(luò)輸入格式的 blob。
- 用法:
- var?blob = CvDnn.BlobFromImage(image,?1?/?255.0,?new?Size(416,?416),?new?Scalar(0,?0,?0),?true,?false);
45. 目標(biāo)檢測與識別
CvDnn.Forward
- 功能:執(zhí)行前向推理。
- 用法:
- var?output = net.Forward();
46. 目標(biāo)檢測與識別
CvDnn.NMSBoxes
- 功能:非極大值抑制,用于去除重疊的邊界框。
- 用法:
- var?indices =?new?List<int>();
- CvDnn.NMSBoxes(boxes, confidences, scoreThreshold:?0.5f, nmsThreshold:?0.4f, indices);
47. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTorch
- 功能:從 Torch 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTorch("model.t7");
48. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
49. 目標(biāo)檢測與識別
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
50. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
51. 顏色空間轉(zhuǎn)換
Cv2.RGBToGray
- 功能:將 RGB 圖像轉(zhuǎn)換為灰度圖像。
- 用法:
- Mat grayImage =?new?Mat();
- Cv2.CvtColor(image, grayImage, ColorConversion.RgbToGray);
Cv2.BGRToHSV
- 功能:將 BGR 圖像轉(zhuǎn)換為 HSV 圖像。
- 用法:
- Mat hsvImage =?new?Mat();
- Cv2.CvtColor(image, hsvImage, ColorConversion.BgrToHsv);
52. 直方圖計算與比較
Cv2.CalcHist
- 功能:計算圖像的直方圖。
- 用法:
- int[] histSize = {?256?};?// 256 個
- bins?float[] ranges = {?0,?256?};?// 像素值范圍
- Mat hist =?new?Mat();
- Cv2.CalcHist(new?Mat[] { grayImage },?new?int[] {?0?},?null, hist,?1, histSize,?new?Rangef[] {?new?Rangef(0,?256) });
Cv2.CompareHist
- 功能:比較兩個直方圖。
- 用法:
- double?correlation = Cv2.CompareHist(hist1, hist2, HistCompMethods.Correl);
53. 形態(tài)學(xué)操作
Cv2.Erode
- 功能:腐蝕操作,減少圖像中的白色區(qū)域。
- 用法:
- Mat erodedImage =?new?Mat();
- Cv2.Erode(binaryImage, erodedImage,?null,?new?Point(-1,?-1),?1);
Cv2.Dilate
- 功能:膨脹操作,增加圖像中的白色區(qū)域。
- 用法:
- Mat dilatedImage =?new?Mat();
- Cv2.Dilate(binaryImage, dilatedImage,?null,?new?Point(-1,?-1),?1);
54. 輪廓分析
Cv2.FindContours
- 功能:查找圖像中的輪廓。
- 用法:
- Cv2.FindContours(binaryImage,?out?Point[][] contours,?out?HierarchyIndex[] hierarchy, RetrievalModes.Tree, ContourApproximation.Simple);
55. 目標(biāo)檢測與識別
CvDnn.ReadNetFromDarknet
- 功能:從 Darknet 配置文件和權(quán)重文件加載 YOLO 模型。
- 用法:
- var?net = CvDnn.ReadNetFromDarknet("yolov4.cfg",?"yolov4.weights");
56. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
57. 目標(biāo)檢測與識別
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
58. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
59. 目標(biāo)檢測與識別
CvDnn.NMSBoxes
- 功能:非極大值抑制,用于去除重疊的邊界框。
- 用法:
- var?indices =?new?List<int>();
- CvDnn.NMSBoxes(boxes, confidences, scoreThreshold:?0.5f, nmsThreshold:?0.4f, indices);
60. 目標(biāo)跟蹤
Cv2.TrackerKCF
- 功能:使用 KCF 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerKCF.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
61. 目標(biāo)跟蹤
Cv2.TrackerCSRT
- 功能:使用 CSRT 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerCSRT.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
62. 關(guān)鍵點檢測與描述
Cv2.SIFT
- 功能:使用 SIFT 算法檢測和描述關(guān)鍵點。
- 用法:
- var?sift = SIFT.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- sift.DetectAndCompute(image,?null,?out?keypoints, descriptors);
Cv2.ORB
- 功能:使用 ORB 算法檢測和描述關(guān)鍵點。
- 用法:
- var?orb = ORB.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- orb.DetectAndCompute(image,?null,?out?keypoints, descriptors);
63. 直方圖均衡化
Cv2.EqualizeHist
- 功能:對灰度圖像進(jìn)行直方圖均衡化,增強(qiáng)對比度。
- 用法:
- Mat equalizedImage =?new?Mat();
- Cv2.EqualizeHist(grayImage, equalizedImage);
64. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTorch
- 功能:從 Torch 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTorch("model.t7");
65. 輪廓繪制
Cv2.DrawContours
- 功能:在圖像上繪制輪廓。
- 用法:
- Cv2.DrawContours(image, contours,?-1, Scalar.Red,?2);
66. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
67. 目標(biāo)檢測與識別
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
68. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
69. 目標(biāo)檢測與識別
CvDnn.NMSBoxes
- 功能:非極大值抑制,用于去除重疊的邊界框。
- 用法:
- var?indices =?new?List<int>();
- CvDnn.NMSBoxes(boxes, confidences, scoreThreshold:?0.5f, nmsThreshold:?0.4f, indices);
70. 目標(biāo)跟蹤
Cv2.TrackerKCF
- 功能:使用 KCF 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerKCF.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
71. 目標(biāo)跟蹤
Cv2.TrackerCSRT
- 功能:使用 CSRT 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerCSRT.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
72. 關(guān)鍵點檢測與描述
Cv2.SIFT
- 功能:使用 SIFT 算法檢測和描述關(guān)鍵點。
- 用法:
- var?sift = SIFT.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- sift.DetectAndCompute(image,?null,?out?keypoints, descriptors);
Cv2.ORB
- 功能:使用 ORB 算法檢測和描述關(guān)鍵點。
- 用法:
- var?orb = ORB.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- orb.DetectAndCompute(image,?null,?out?keypoints, descriptors);
73. 直方圖均衡化
Cv2.EqualizeHist
- 功能:對灰度圖像進(jìn)行直方圖均衡化,增強(qiáng)對比度。
- 用法:
- Mat equalizedImage =?new?Mat();
- Cv2.EqualizeHist(grayImage, equalizedImage);
74. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTorch
- 功能:從 Torch 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTorch("model.t7");
75. 輪廓繪制
Cv2.DrawContours
- 功能:在圖像上繪制輪廓。
- 用法:
- Cv2.DrawContours(image, contours,?-1, Scalar.Red,?2);
76. 圖像金字塔
Cv2.PyrDown
- 功能:將圖像縮小為原始圖像的一半,使用高斯模糊。
- 用法:
- Mat downsampledImage =?new?Mat();
- Cv2.PyrDown(image, downsampledImage);
Cv2.PyrUp
- 功能:將圖像放大為原始圖像的兩倍,使用高斯模糊。
- 用法:
- Mat upsampledImage =?new?Mat();
- Cv2.PyrUp(image, upsampledImage);
77. 透視變換
Cv2.GetAffineTransform
- 功能:獲取仿射變換矩陣。
- 用法:
- Point2f[] srcPoints = {?new?Point2f(0,?0),?new?Point2f(1,?0),?new?Point2f(0,?1) };
- Point2f[] dstPoints = {?new?Point2f(0,?0),?new?Point2f(1,?0),?new?Point2f(0,?1) };
- Mat affineMatrix = Cv2.GetAffineTransform(srcPoints, dstPoints);
78. 直方圖反向投影
Cv2.CalcBackProject
- 功能:計算反向投影,用于目標(biāo)檢測。
- 用法:
- Mat backProject =?new?Mat();
- Cv2.CalcBackProject(new?Mat[] { image },?new?int[] {?0?}, hist, backProject,?new?Rangef[] {?new?Rangef(0,?256) });
79. 輪廓特征提取
Cv2.Moments
- 功能:計算輪廓的矩,用于特征提取。
- 用法:
- var?moments = Cv2.Moments(contour);
- double?area = moments.M00;?// 輪廓面積
80. 輪廓逼近
Cv2.ApproxPolyDP
- 功能:對輪廓進(jìn)行多邊形逼近。
- 用法:
- Point[] approx = Cv2.ApproxPolyDP(contour,?0.02?* Cv2.ArcLength(contour,?true),?true);
81. 形態(tài)學(xué)操作
Cv2.MorphologyEx
- 功能:執(zhí)行形態(tài)學(xué)操作,如開運(yùn)算、閉運(yùn)算等。
- 用法:
- Mat morphedImage =?new?Mat();
- Cv2.MorphologyEx(binaryImage, morphedImage, MorphTypes.Open,?null);
82. 顏色空間轉(zhuǎn)換
Cv2.CvtColor
- 功能:轉(zhuǎn)換圖像顏色空間(如 BGR 轉(zhuǎn) HSV、RGB 轉(zhuǎn) LAB 等)。
- 用法:
- Mat hsvImage =?new?Mat();
- Cv2.CvtColor(image, hsvImage, ColorConversion.BgrToHsv);
83. 目標(biāo)檢測與識別
CvDnn.ReadNetFromDarknet
- 功能:從 Darknet 配置文件和權(quán)重文件加載 YOLO 模型。
- 用法:
- var?net = CvDnn.ReadNetFromDarknet("yolov4.cfg",?"yolov4.weights");
84. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
85. 目標(biāo)檢測與識別
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- csharp
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
86. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
87. 目標(biāo)檢測與識別
CvDnn.NMSBoxes
- 功能:非極大值抑制,用于去除重疊的邊界框。
- 用法:
- var?indices =?new?List<int>();
- CvDnn.NMSBoxes(boxes, confidences, scoreThreshold:?0.5f, nmsThreshold:?0.4f, indices);
88. 目標(biāo)跟蹤
Cv2.TrackerKCF
- 功能:使用 KCF 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerKCF.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
89. 目標(biāo)跟蹤
Cv2.TrackerCSRT
- 功能:使用 CSRT 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerCSRT.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
90. 關(guān)鍵點檢測與描述
Cv2.SIFT
- 功能:使用 SIFT 算法檢測和描述關(guān)鍵點。
- 用法:
- var?sift = SIFT.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- sift.DetectAndCompute(image,?null,?out?keypoints, descriptors);
Cv2.ORB
- 功能:使用 ORB 算法檢測和描述關(guān)鍵點。
- 用法:
- var?orb = ORB.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- orb.DetectAndCompute(image,?null,?out?keypoints, descriptors);
91. 直方圖均衡化
Cv2.EqualizeHist
- 功能:對灰度圖像進(jìn)行直方圖均衡化,增強(qiáng)對比度。
- 用法:
- Mat equalizedImage =?new?Mat();
- Cv2.EqualizeHist(grayImage, equalizedImage);
92. 輪廓繪制
Cv2.DrawContours
- 功能:在圖像上繪制輪廓。
- 用法:
- Cv2.DrawContours(image, contours,?-1, Scalar.Red,?2);
93. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTorch
- 功能:從 Torch 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTorch("model.t7");
94. 目標(biāo)檢測與識別
CvDnn.ReadNetFromTensorflow
- 功能:從 TensorFlow 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromTensorflow("model.pb",?"model.pbtxt");
95. 目標(biāo)檢測與識別
CvDnn.ReadNetFromCaffe
- 功能:從 Caffe 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromCaffe("deploy.prototxt",?"model.caffemodel");
96. 目標(biāo)檢測與識別
CvDnn.ReadNetFromONNX
- 功能:從 ONNX 模型文件加載網(wǎng)絡(luò)。
- 用法:
- var?net = CvDnn.ReadNetFromONNX("model.onnx");
97. 目標(biāo)檢測與識別
CvDnn.NMSBoxes
- 功能:非極大值抑制,用于去除重疊的邊界框。
- 用法:
- var?indices =?new?List<int>();
- CvDnn.NMSBoxes(boxes, confidences, scoreThreshold:?0.5f, nmsThreshold:?0.4f, indices);
98. 目標(biāo)跟蹤
Cv2.TrackerKCF
- 功能:使用 KCF 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerKCF.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
99. 目標(biāo)跟蹤
Cv2.TrackerCSRT
- 功能:使用 CSRT 算法進(jìn)行目標(biāo)跟蹤。
- 用法:
- var?tracker = TrackerCSRT.Create();
- tracker.Init(frame,?new?Rect(100,?100,?50,?50));?// 初始化跟蹤器
- tracker.Update(frame,?out?Rect boundingBox);?// 更新跟蹤
100. 關(guān)鍵點檢測與描述
Cv2.SIFT
- 功能:使用 SIFT 算法檢測和描述關(guān)鍵點。
- 用法:
- var?sift = SIFT.Create(); KeyPoint[] keypoints;
- Mat descriptors =?new?Mat();
- sift.DetectAndCompute(image,?null,?out?keypoints, descriptors);