C#版OpenCv常用函数大全 
            
            
                
        
        
                    OpenCvSharp 是 OpenCV 的NET封装,提供了丰富的图像处理和计算机视觉功能。以下是一些常用函数及其详细说明。 
 
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.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. 目标检测与识别 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 List<int>(); 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 List<int>(); 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 List<int>(); 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 List<int>(); 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 模型文件加载网络。用法 :csharp var net = CvDnn.ReadNetFromCaffe("deploy.prototxt", "model.caffemodel"); 86. 目标检测与识别 CvDnn.ReadNetFromONNX  
功能 :从 ONNX 模型文件加载网络。用法 :var net = CvDnn.ReadNetFromONNX("model.onnx"); 87. 目标检测与识别 CvDnn.NMSBoxes  
功能 :非极大值抑制,用于去除重叠的边界框。用法 :var indices = new List<int>(); 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 List<int>(); 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);  
         
              
            
            
              
                本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2274562.html 
              
              如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!