用英文字母做网站关键词,手机开网站,网站取消备案,渭南网站建设公司定制网站建设公司OpenCvSharp 是 OpenCV 的NET封装#xff0c;提供了丰富的图像处理和计算机视觉功能。以下是一些常用函数及其详细说明。 1. 图像读取与显示
Cv2.ImRead
功能#xff1a;读取图像文件并返回一个 Mat 对象。用法#xff1a;Mat image Cv2.ImRead(path/to/image.jpg提供了丰富的图像处理和计算机视觉功能。以下是一些常用函数及其详细说明。 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
功能转换图像颜色空间如 BGR 转灰度、RGB 转 HSV 等。用法Mat grayImage new Mat();Cv2.CvtColor(image, grayImage, ColorConversion.BgrToGray);
Cv2.GaussianBlur
功能对图像应用高斯模糊减少噪声。用法Mat blurredImage new Mat();Cv2.GaussianBlur(image, blurredImage, new Size(5, 5), 0);
Cv2.Canny
功能使用 Canny 算法进行边缘检测。用法Mat edges new Mat();Cv2.Canny(grayImage, edges, 100, 200);
3. 图像变换
Cv2.Resize
功能调整图像大小。用法Mat resizedImage new Mat();Cv2.Resize(image, resizedImage, new Size(200, 200));
Cv2.Rotate
功能旋转图像。用法Mat rotatedImage new Mat();Cv2.Rotate(image, rotatedImage, RotateFlags.Rotate90Clockwise);
Cv2.WarpAffine
功能对图像进行仿射变换。用法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. 形态学操作
Cv2.Erode
功能腐蚀操作减少图像中的白色区域。用法Mat erodedImage new Mat(); Cv2.Erode(binaryImage, erodedImage, null, new Point(-1, -1), 1);
Cv2.Dilate
功能膨胀操作增加图像中的白色区域。用法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 配置文件和权重文件加载 YOLO 模型。用法var net CvDnn.ReadNetFromDarknet(yolov4.cfg, yolov4.weights);
CvDnn.BlobFromImage
功能将图像转换为网络输入格式的 blob。用法var blob CvDnn.BlobFromImage(image, 1 / 255.0, new Size(416, 416), new Scalar(0, 0, 0), true, false);
CvDnn.Forward
功能执行前向推理。用法var output net.Forward();
7. 其他实用函数
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
功能打开视频文件或摄像头进行视频捕捉。用法using (var capture new VideoCapture(0)) // 0 表示默认摄像头{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)); // 创建红色帧 writer.Write(frame);}}
9. 颜色空间转换
Cv2.Split
功能将多通道图像分离为单通道图像。用法Mat[] channels Cv2.Split(image); Mat blueChannel channels[0]; // 蓝色通道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
功能描述关键点特征。用法var orb ORB.Create(); KeyPoint[] keypoints; Mat descriptors new Mat(); orb.DetectAndCompute(image, null, out keypoints, descriptors);
Cv2.BFMatcher
功能使用暴力匹配器进行特征匹配。用法var matcher new BFMatcher(NormTypes.Hamming, crossCheck: true);var matches new Mat();matcher.Match(descriptors1, descriptors2, matches);
12. 轮廓分析
Cv2.ApproxPolyDP
功能对轮廓进行多边形逼近。用法Point[] approx Cv2.ApproxPolyDP(contour, 0.02 * Cv2.ArcLength(contour, true), true);
Cv2.Hierarchy
功能获取轮廓的层次结构。用法Cv2.FindContours(image, out Point[][] contours, out HierarchyIndex[] hierarchy, RetrievalModes.Tree, ContourApproximation.Simple);
13. 机器学习与深度学习
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法var net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
14. 其他实用功能
Cv2.GetRotationMatrix2D
功能获取旋转矩阵用于图像旋转。用法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感兴趣区域
Mat.RegionOfInterest
功能提取图像的感兴趣区域。用法Mat roi new Mat(image, new Rect(50, 50, 100, 100)); // 提取 (50, 50) 开始的 100x100 区域
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
功能对灰度图像进行直方图均衡化增强对比度。用法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
功能应用透视变换到图像。用法Mat warpedImage new Mat();Mat perspectiveMatrix Cv2.GetPerspectiveTransform(srcPoints, dstPoints);Cv2.WarpPerspective(image, warpedImage, perspectiveMatrix, new Size(width, height));
21. 颜色空间转换
Cv2.CvtColor
功能转换图像颜色空间如 BGR 转 HSV、RGB 转 LAB 等。用法Mat hsvImage new Mat();Cv2.CvtColor(image, hsvImage, ColorConversion.BgrToHsv);
22. 目标跟踪
Cv2.TrackerKCF
功能使用 KCF 算法进行目标跟踪。用法var tracker TrackerKCF.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
23. 关键点检测
Cv2.GoodFeaturesToTrack
功能检测图像中的角点。用法Point2f[] corners Cv2.GoodFeaturesToTrack(grayImage, maxCorners: 100, qualityLevel: 0.01, minDistance: 10);
24. 直方图反向投影
Cv2.CalcBackProject
功能计算反向投影用于目标检测。用法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
功能绘制直方图。用法// 需要自定义绘制函数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.Atfloat(i - 1)), new Point(binWidth * i, histHeight - (int)hist.Atfloat(i)), new Scalar(255, 0, 0), 2);}Cv2.ImShow(Histogram, histImage);}
27. 颜色直方图比较
Cv2.CompareHist
功能比较两个直方图。用法double correlation Cv2.CompareHist(hist1, hist2, HistCompMethods.Correl);
28. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
29. 轮廓填充
Cv2.FillPoly
功能填充多边形区域。用法Cv2.FillPoly(image, new Point[][] { contour }, new Scalar(255, 0, 0));
30. 直方图均衡化
Cv2.EqualizeHist
功能对灰度图像进行直方图均衡化增强对比度。用法Mat equalizedImage new Mat();Cv2.EqualizeHist(grayImage, equalizedImage);
31. 颜色空间转换
Cv2.BGRToGray
功能将 BGR 图像转换为灰度图像。用法Mat grayImage new Mat();Cv2.BGRToGray(image, grayImage);
Cv2.HsvToBgr
功能将 HSV 图像转换为 BGR 图像。用法Mat bgrImage new Mat();Cv2.HsvToBgr(hsvImage, bgrImage);
32. 直方图均衡化
Cv2.CLAHE
功能对比度限制自适应直方图均衡化增强图像对比度。用法var clahe Cv2.CreateCLAHE(clipLimit: 2.0, tileGridSize: new Size(8, 8));Mat claheImage new Mat();clahe.Apply(grayImage, claheImage);
33. 目标检测与识别
CvDnn.NMSBoxes
功能非极大值抑制用于去除重叠的边界框。用法var indices new Listint();CvDnn.NMSBoxes(boxes, confidences, scoreThreshold: 0.5f, nmsThreshold: 0.4f, indices);
34. 形态学操作
Cv2.MorphologyEx
功能执行形态学操作如开运算、闭运算等。用法Mat morphedImage new Mat();Cv2.MorphologyEx(binaryImage, morphedImage, MorphTypes.Open, null);
35. 目标跟踪
Cv2.TrackerCSRT
功能使用 CSRT 算法进行目标跟踪。用法var tracker TrackerCSRT.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
36. 关键点描述
Cv2.SIFT
功能使用 SIFT 算法检测和描述关键点。用法var sift SIFT.Create(); KeyPoint[] keypoints; Mat descriptors new Mat();sift.DetectAndCompute(image, null, out keypoints, descriptors);
37. 目标检测与识别
CvDnn.ReadNetFromTorch
功能从 Torch 模型文件加载网络。用法var net CvDnn.ReadNetFromTorch(model.t7);
38. 轮廓绘制
Cv2.DrawContours
功能在图像上绘制轮廓。用法Cv2.DrawContours(image, contours, -1, Scalar.Red, 2);
39. 直方图计算
Cv2.CalcBackProject
功能计算反向投影用于目标检测。用法Mat backProject new Mat();Cv2.CalcBackProject(new Mat[] { image }, new int[] { 0 }, hist, backProject, new Rangef[] { new Rangef(0, 256) });
40. 目标检测与识别
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
41. 目标检测与识别
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法var net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
42. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
43. 目标检测与识别
CvDnn.ReadNetFromDarknet
功能从 Darknet 配置文件和权重文件加载 YOLO 模型。用法var net CvDnn.ReadNetFromDarknet(yolov4.cfg, yolov4.weights);
44. 目标检测与识别
CvDnn.BlobFromImage
功能将图像转换为网络输入格式的 blob。用法var blob CvDnn.BlobFromImage(image, 1 / 255.0, new Size(416, 416), new Scalar(0, 0, 0), true, false);
45. 目标检测与识别
CvDnn.Forward
功能执行前向推理。用法var output net.Forward();
46. 目标检测与识别
CvDnn.NMSBoxes
功能非极大值抑制用于去除重叠的边界框。用法var indices new Listint();CvDnn.NMSBoxes(boxes, confidences, scoreThreshold: 0.5f, nmsThreshold: 0.4f, indices);
47. 目标检测与识别
CvDnn.ReadNetFromTorch
功能从 Torch 模型文件加载网络。用法var net CvDnn.ReadNetFromTorch(model.t7);
48. 目标检测与识别
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
49. 目标检测与识别
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法var net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
50. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
51. 颜色空间转换
Cv2.RGBToGray
功能将 RGB 图像转换为灰度图像。用法Mat grayImage new Mat();Cv2.CvtColor(image, grayImage, ColorConversion.RgbToGray);
Cv2.BGRToHSV
功能将 BGR 图像转换为 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. 形态学操作
Cv2.Erode
功能腐蚀操作减少图像中的白色区域。用法Mat erodedImage new Mat();Cv2.Erode(binaryImage, erodedImage, null, new Point(-1, -1), 1);
Cv2.Dilate
功能膨胀操作增加图像中的白色区域。用法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. 目标检测与识别
CvDnn.ReadNetFromDarknet
功能从 Darknet 配置文件和权重文件加载 YOLO 模型。用法var net CvDnn.ReadNetFromDarknet(yolov4.cfg, yolov4.weights);
56. 目标检测与识别
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
57. 目标检测与识别
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法var net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
58. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
59. 目标检测与识别
CvDnn.NMSBoxes
功能非极大值抑制用于去除重叠的边界框。用法var indices new Listint();CvDnn.NMSBoxes(boxes, confidences, scoreThreshold: 0.5f, nmsThreshold: 0.4f, indices);
60. 目标跟踪
Cv2.TrackerKCF
功能使用 KCF 算法进行目标跟踪。用法var tracker TrackerKCF.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
61. 目标跟踪
Cv2.TrackerCSRT
功能使用 CSRT 算法进行目标跟踪。用法var tracker TrackerCSRT.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
62. 关键点检测与描述
Cv2.SIFT
功能使用 SIFT 算法检测和描述关键点。用法var sift SIFT.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();sift.DetectAndCompute(image, null, out keypoints, descriptors);
Cv2.ORB
功能使用 ORB 算法检测和描述关键点。用法var orb ORB.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();orb.DetectAndCompute(image, null, out keypoints, descriptors);
63. 直方图均衡化
Cv2.EqualizeHist
功能对灰度图像进行直方图均衡化增强对比度。用法Mat equalizedImage new Mat();Cv2.EqualizeHist(grayImage, equalizedImage);
64. 目标检测与识别
CvDnn.ReadNetFromTorch
功能从 Torch 模型文件加载网络。用法var net CvDnn.ReadNetFromTorch(model.t7);
65. 轮廓绘制
Cv2.DrawContours
功能在图像上绘制轮廓。用法Cv2.DrawContours(image, contours, -1, Scalar.Red, 2);
66. 目标检测与识别
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
67. 目标检测与识别
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法var net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
68. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
69. 目标检测与识别
CvDnn.NMSBoxes
功能非极大值抑制用于去除重叠的边界框。用法var indices new Listint();CvDnn.NMSBoxes(boxes, confidences, scoreThreshold: 0.5f, nmsThreshold: 0.4f, indices);
70. 目标跟踪
Cv2.TrackerKCF
功能使用 KCF 算法进行目标跟踪。用法var tracker TrackerKCF.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
71. 目标跟踪
Cv2.TrackerCSRT
功能使用 CSRT 算法进行目标跟踪。用法var tracker TrackerCSRT.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
72. 关键点检测与描述
Cv2.SIFT
功能使用 SIFT 算法检测和描述关键点。用法var sift SIFT.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();sift.DetectAndCompute(image, null, out keypoints, descriptors);
Cv2.ORB
功能使用 ORB 算法检测和描述关键点。用法var orb ORB.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();orb.DetectAndCompute(image, null, out keypoints, descriptors);
73. 直方图均衡化
Cv2.EqualizeHist
功能对灰度图像进行直方图均衡化增强对比度。用法Mat equalizedImage new Mat();Cv2.EqualizeHist(grayImage, equalizedImage);
74. 目标检测与识别
CvDnn.ReadNetFromTorch
功能从 Torch 模型文件加载网络。用法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
功能计算反向投影用于目标检测。用法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
功能对轮廓进行多边形逼近。用法Point[] approx Cv2.ApproxPolyDP(contour, 0.02 * Cv2.ArcLength(contour, true), true);
81. 形态学操作
Cv2.MorphologyEx
功能执行形态学操作如开运算、闭运算等。用法Mat morphedImage new Mat();Cv2.MorphologyEx(binaryImage, morphedImage, MorphTypes.Open, null);
82. 颜色空间转换
Cv2.CvtColor
功能转换图像颜色空间如 BGR 转 HSV、RGB 转 LAB 等。用法Mat hsvImage new Mat();Cv2.CvtColor(image, hsvImage, ColorConversion.BgrToHsv);
83. 目标检测与识别
CvDnn.ReadNetFromDarknet
功能从 Darknet 配置文件和权重文件加载 YOLO 模型。用法var net CvDnn.ReadNetFromDarknet(yolov4.cfg, yolov4.weights);
84. 目标检测与识别
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
85. 目标检测与识别
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法csharpvar net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
86. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
87. 目标检测与识别
CvDnn.NMSBoxes
功能非极大值抑制用于去除重叠的边界框。用法var indices new Listint();CvDnn.NMSBoxes(boxes, confidences, scoreThreshold: 0.5f, nmsThreshold: 0.4f, indices);
88. 目标跟踪
Cv2.TrackerKCF
功能使用 KCF 算法进行目标跟踪。用法var tracker TrackerKCF.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
89. 目标跟踪
Cv2.TrackerCSRT
功能使用 CSRT 算法进行目标跟踪。用法var tracker TrackerCSRT.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
90. 关键点检测与描述
Cv2.SIFT
功能使用 SIFT 算法检测和描述关键点。用法var sift SIFT.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();sift.DetectAndCompute(image, null, out keypoints, descriptors);
Cv2.ORB
功能使用 ORB 算法检测和描述关键点。用法var orb ORB.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();orb.DetectAndCompute(image, null, out keypoints, descriptors);
91. 直方图均衡化
Cv2.EqualizeHist
功能对灰度图像进行直方图均衡化增强对比度。用法Mat equalizedImage new Mat();Cv2.EqualizeHist(grayImage, equalizedImage);
92. 轮廓绘制
Cv2.DrawContours
功能在图像上绘制轮廓。用法Cv2.DrawContours(image, contours, -1, Scalar.Red, 2);
93. 目标检测与识别
CvDnn.ReadNetFromTorch
功能从 Torch 模型文件加载网络。用法var net CvDnn.ReadNetFromTorch(model.t7);
94. 目标检测与识别
CvDnn.ReadNetFromTensorflow
功能从 TensorFlow 模型文件加载网络。用法var net CvDnn.ReadNetFromTensorflow(model.pb, model.pbtxt);
95. 目标检测与识别
CvDnn.ReadNetFromCaffe
功能从 Caffe 模型文件加载网络。用法var net CvDnn.ReadNetFromCaffe(deploy.prototxt, model.caffemodel);
96. 目标检测与识别
CvDnn.ReadNetFromONNX
功能从 ONNX 模型文件加载网络。用法var net CvDnn.ReadNetFromONNX(model.onnx);
97. 目标检测与识别
CvDnn.NMSBoxes
功能非极大值抑制用于去除重叠的边界框。用法var indices new Listint();CvDnn.NMSBoxes(boxes, confidences, scoreThreshold: 0.5f, nmsThreshold: 0.4f, indices);
98. 目标跟踪
Cv2.TrackerKCF
功能使用 KCF 算法进行目标跟踪。用法var tracker TrackerKCF.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
99. 目标跟踪
Cv2.TrackerCSRT
功能使用 CSRT 算法进行目标跟踪。用法var tracker TrackerCSRT.Create();tracker.Init(frame, new Rect(100, 100, 50, 50)); // 初始化跟踪器tracker.Update(frame, out Rect boundingBox); // 更新跟踪
100. 关键点检测与描述
Cv2.SIFT
功能使用 SIFT 算法检测和描述关键点。用法var sift SIFT.Create(); KeyPoint[] keypoints;Mat descriptors new Mat();sift.DetectAndCompute(image, null, out keypoints, descriptors);