当前位置: 首页 > news >正文

做家教网站赚钱么500云空间网站

做家教网站赚钱么,500云空间网站,电子商务网站建设实训过程,苏中建设官方网站在C#中使用OpenCV进行图像处理时#xff0c;可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测#xff08;Blob#xff09; 斑点检测是指在图像中找到明亮或暗的小区域#xff08;通常表示为斑点#xff09;#…在C#中使用OpenCV进行图像处理时可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测Blob 斑点检测是指在图像中找到明亮或暗的小区域通常表示为斑点并标记它们的位置。可以使用OpenCV中的函数SimpleBlobDetector来实现斑点检测。该函数将图像转换为二进制图像然后找到所有的轮廓通过设置阈值来确定斑点的亮度范围。 SimpleBlobDetector.Params //函数原型 public Params() {Data new WParams{thresholdStep 10f,minThreshold 50f,maxThreshold 220f,minRepeatability 2u,minDistBetweenBlobs 10f,filterByColor 1,blobColor 0,filterByArea 1,minArea 25f,maxArea 5000f,filterByCircularity 0,minCircularity 0.8f,maxCircularity float.MaxValue,filterByInertia 1,minInertiaRatio 0.1f,maxInertiaRatio float.MaxValue,filterByConvexity 1,minConvexity 0.95f,maxConvexity float.MaxValue}; } SimpleBlobDetector是OpenCV中用于检测二值图像中的斑点的类以下是它的参数说明 1. thresholdStep二值化阈值步长用于在二值化过程中逐步增加或减小阈值默认为10。 2. minThreshold最小的二值化阈值默认为50。 3. maxThreshold最大的二值化阈值默认为220。 4. minRepeatability最小的斑点重复次数默认为2表示只有当一个斑点至少在两个不同位置被检测到时才会被认为是有效的。 5. blobColor斑点的亮度值取值为0或255默认为0表示只检测黑色斑点。 6. filterByArea是否根据斑点的面积进行过滤默认为true表示进行过滤。 7. minArea最小的斑点面积默认为25表示只检测面积大于25的斑点。 8. maxArea最大的斑点面积默认为5000表示只检测面积小于5000的斑点。 9. filterByCircularity是否根据斑点的圆形度进行过滤默认为false表示不进行过滤。 10. minCircularity最小的斑点圆形度默认为0.8表示只检测圆形度大于0.8的斑点。 11. maxCircularity最大的斑点圆形度默认为1表示只检测圆形度小于1的斑点。 12. filterByInertia是否根据斑点的惯性比进行过滤默认为true表示进行过滤。 13. minInertiaRatio最小的斑点惯性比默认为0.1表示只检测惯性比大于0.1的斑点。 14. maxInertiaRatio最大的斑点惯性比默认为1表示只检测惯性比小于1的斑点。 15. filterByConvexity是否根据斑点的凸度进行过滤默认为true表示进行过滤。 16. minConvexity最小的斑点凸度默认为0.95表示只检测凸度大于0.95的斑点。 17. maxConvexity最大的斑点凸度默认为1表示只检测凸度小于1的斑点。 这些参数可以根据具体应用场景进行调整以得到符合要求的斑点检测结果。 所使用图例 // 读取原始图像 Mat image new Mat(1.jpg, ImreadModes.Color);// 创建SimpleBlobDetector参数 SimpleBlobDetector.Params parameters new SimpleBlobDetector.Params();// 设置参数 parameters.FilterByArea true; parameters.MinArea 100; parameters.MaxArea 10000;// 创建SimpleBlobDetector SimpleBlobDetector detector SimpleBlobDetector.Create(parameters);// 检测斑点 KeyPoint[] keypoints detector.Detect(image);// 在图像上绘制斑点 Mat result new Mat(); Cv2.DrawKeypoints(image, keypoints, result, Scalar.All(-1), DrawMatchesFlags.Default);// 显示结果 Cv2.ImShow(Result, result); Cv2.WaitKey(0); 二、边缘检测 边缘检测是一种图像处理技术可以找到图像中的边缘或边界。penCV 中提供的两种重要边缘检测算法Sobel边缘检测和 canny边缘检测。 1、cv2.Sobel() //函数原型 public static void Sobel(InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize 3, double scale 1,double delta 0, BorderType borderType BorderType.Default )参数说明 src输入图像。dst输出图像是一个与输入图像相同大小和类型的图像。ddepth输出图像的深度通常使用-1表示与输入图像相同深度。dx表示在水平方向上进行边缘检测的阶数。dy表示在垂直方向上进行边缘检测的阶数。ksize表示卷积核的大小默认为3。scale可选参数用于缩放结果默认为1。delta可选参数用于调整结果的偏移默认为0。borderType可选参数用于指定边界的处理方式默认为BorderType.Default。 使用cv2.Sobel函数可以进行边缘检测通过调整dx和dy的值可以获得不同方向的边缘信息。输出图像的像素值表示了对应位置的边缘强度。 cv2.Sobel函数进行边缘检测的示例 using OpenCvSharp;Mat srcImage new Mat(input.jpg, ImreadModes.Color); Mat grayImage new Mat(); Cv2.CvtColor(srcImage, grayImage, ColorConversionCodes.BGR2GRAY);Mat edges new Mat(); Cv2.Sobel(grayImage, edges, MatType.CV_8U, 1, 0, 3);Cv2.ImShow(Edges, edges); Cv2.WaitKey(0); 这个示例将输入图像转换为灰度图像并使用Sobel算子在水平方向上进行边缘检测然后显示结果图像。 总之cv2.Sobel函数是OpenCVSharp库中的一个函数用于在图像上应用Sobel算子进行边缘检测。通过调整参数可以获得不同方向的边缘信息。 2、cv2.Canny() public static void Canny(InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize 3, bool L2gradient false)参数说明 image要进行边缘检测的输入图像。edges输出的边缘图像。threshold1第一个阈值用于边缘链接。threshold2第二个阈值用于边缘链接。apertureSizeSobel算子的孔径大小默认为3。L2gradient一个布尔值指定求梯度大小的方法默认为false。 Canny边缘检测算法的原理是首先对图像进行高斯滤波然后通过Sobel算子计算图像的梯度再通过非极大值抑制来提取局部最大值作为边缘点最后通过双阈值检测来连接边缘点。 cv2.Canny函数的示例代码 using OpenCvSharp;class Program {static void Main(string[] args){// 读取图像Mat image Cv2.ImRead(image.jpg, ImreadModes.Color);// 将图像转换为灰度图像Mat grayImage new Mat();Cv2.CvtColor(image, grayImage, ColorConversionCodes.BGR2GRAY);// 使用Canny边缘检测算法检测边缘Mat edges new Mat();Cv2.Canny(grayImage, edges, 100, 200);// 显示原始图像和边缘图像Cv2.ImShow(Original Image, image);Cv2.ImShow(Edges, edges);Cv2.WaitKey(0);// 释放内存Cv2.DestroyAllWindows();image.Dispose();grayImage.Dispose();edges.Dispose();} }这个示例代码从文件中读取图像然后将其转换为灰度图像。然后它使用Canny边缘检测算法检测图像中的边缘并将结果显示出来。最后释放内存并关闭窗口。 注意在运行此代码之前确保已在项目中添加对OpenCVSharp库的引用并将图像文件与示例代码放在同一目录下并将图像文件名替换为实际的图像文件名 三、 轮廓检测 轮廓检测是一种从图像中提取物体形状的技术。OpenCV中的cvFindContours函数可以实现轮廓检测。该函数将图像转换为二进制图像然后找到所有的轮廓。 轮廓检测步骤 Cv2.CvtColor彩色图像转换为灰度图像cv2.threshold函数用于将图像进行二值化处理Cv2.FindContours在图像中查找轮廓Cv2.DrawContours在图像上绘制轮廓 示例代码 // 读取图像Mat image Cv2.ImRead(1.png, ImreadModes.Color);// 将图像转换为灰度图像Mat grayImage new Mat();Cv2.CvtColor(image, grayImage, ColorConversionCodes.BGR2GRAY); // 进行BGR2GRAY转换Mat ThresholdImage new Mat();Cv2.Threshold(grayImage, ThresholdImage, 150, 255, ThresholdTypes.Binary); // 对图像进行二值化处理Cv2.ImShow(ThresholdImage, ThresholdImage);Cv2.WaitKey(0);OpenCvSharp.Point[][] contours;HierarchyIndex[] hierarchy;Cv2.FindContours(ThresholdImage, out contours, out hierarchy, RetrievalModes.List, ContourApproximationModes.ApproxSimple);Scalar color new Scalar(0, 255, 0); // 轮廓颜色为绿色int thickness 2; // 轮廓线粗细为2for (int i 0; i contours.Length; i){Cv2.DrawContours(ThresholdImage, contours, i, color, thickness); // 绘制轮廓}Cv2.ImShow(Contours, ThresholdImage); // 显示图像Cv2.WaitKey(0); c# OpenCV文章目录 c# OpenCV 检测斑点检测、边缘检测、轮廓检测五 c# OpenCV 基本绘画(直线、椭圆、矩形、圆、多边形、文本)四c# OpenCV 图像裁剪、调整大小、旋转、透视三 c#OpenCV 读取、显示和写入图像二 c# OpenCV安装一
http://www.pierceye.com/news/937043/

相关文章:

  • 广州网站建设外贸做vip视频网站赚钱吗
  • 模板网建站山西 网站制作
  • 网站建设捌金手指花总二七网页制作与设计的内容
  • 阿凡达网站建设网网络营销包括什么内容
  • 网站设计师是什么做的好的国外网站
  • 19年做网站织梦cms源码
  • 做定制网站怎么样原创网站设计
  • 淮安网站建设 淮安网站制作反向代理wordpress
  • 七台河北京网站建设深圳营销策划
  • 陕西西乡网站建设如何做网站效果图
  • 三门峡高端网站建设临安建设规划局网站
  • 可信网站认证哪里有网站建设分金手指排名一
  • 十大品牌网站建设专业网站的利弊
  • 如何查看网站域名360seo
  • 苏州网站设计kgwl手机网站全屏代码
  • 网站开发工程师就业前景免费企业网站模板
  • 网站建设额企业建设网站对客户的好处
  • 济南网站制作设计公司WordPress文章相册修改
  • 购物网站建设思维导构图电商平台建设方案
  • 一个网站一年的费用多少惠州网站制作哪里好
  • 网站界面设计材料收集国内外包网站
  • 自如网站做的好 服务网站开发实训
  • 档案网站建设的意义网页制作工具可以分为
  • 网站建设价格是哪些方面决定的wordpress32m
  • 建设公司网站哪家好网站建设 中企动力洛阳分公司
  • 如何做自己的大淘客网站开公司建网站
  • 在线网站设计工具腾讯做的电子商务网站
  • 重庆建设工程证照查询网站东莞松山湖
  • 唐山市政建设总公司网站南阳网站推广招聘
  • wordpress搭建网站网站建立网络优化