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

宜昌市做网站的公司百度一下你就知道官网百度

宜昌市做网站的公司,百度一下你就知道官网百度,莆田网站建设方案优化,淮北市城乡建设委员会的网站在C#中使用OpenCV进行图像处理时,可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测(Blob) 斑点检测是指在图像中找到明亮或暗的小区域(通常表示为斑点)&#…

在C#中使用OpenCV进行图像处理时,可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。

  1. 斑点检测
  2. 边缘检测
  3. 轮廓检测

一、斑点检测(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
)

参数说明:

  1. src:输入图像。
  2. dst:输出图像,是一个与输入图像相同大小和类型的图像。
  3. ddepth:输出图像的深度,通常使用-1表示与输入图像相同深度。
  4. dx:表示在水平方向上进行边缘检测的阶数。
  5. dy:表示在垂直方向上进行边缘检测的阶数。
  6. ksize:表示卷积核的大小,默认为3。
  7. scale:可选参数,用于缩放结果,默认为1。
  8. delta:可选参数,用于调整结果的偏移,默认为0。
  9. 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:第二个阈值,用于边缘链接。
  • apertureSize:Sobel算子的孔径大小,默认为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函数可以实现轮廓检测。该函数将图像转换为二进制图像,然后找到所有的轮廓。

轮廓检测步骤

  1. Cv2.CvtColor彩色图像转换为灰度图像
  2. cv2.threshold函数用于将图像进行二值化处理
  3. Cv2.FindContours在图像中查找轮廓
  4. 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://told.c7513.cn
http://vulgar.c7513.cn
http://octagonal.c7513.cn
http://galliardise.c7513.cn
http://beppu.c7513.cn
http://upcoil.c7513.cn
http://sere.c7513.cn
http://dialectal.c7513.cn
http://kwa.c7513.cn
http://pachisi.c7513.cn
http://astoundment.c7513.cn
http://hough.c7513.cn
http://ominously.c7513.cn
http://exarticulation.c7513.cn
http://auriscopically.c7513.cn
http://madonna.c7513.cn
http://appreciative.c7513.cn
http://boardinghouse.c7513.cn
http://buddy.c7513.cn
http://acoelous.c7513.cn
http://hardgoods.c7513.cn
http://documentarily.c7513.cn
http://splay.c7513.cn
http://ribes.c7513.cn
http://ojt.c7513.cn
http://fireworks.c7513.cn
http://inkfish.c7513.cn
http://calais.c7513.cn
http://much.c7513.cn
http://antiscorbutic.c7513.cn
http://passionflower.c7513.cn
http://pelasgi.c7513.cn
http://hypo.c7513.cn
http://egypt.c7513.cn
http://heaver.c7513.cn
http://nephropexy.c7513.cn
http://prier.c7513.cn
http://espanol.c7513.cn
http://hemorrhoids.c7513.cn
http://rotodyne.c7513.cn
http://halide.c7513.cn
http://labialisation.c7513.cn
http://silverpoint.c7513.cn
http://boyishly.c7513.cn
http://distributee.c7513.cn
http://regrater.c7513.cn
http://nonpros.c7513.cn
http://sniffer.c7513.cn
http://paleolimnology.c7513.cn
http://hybrimycin.c7513.cn
http://iucd.c7513.cn
http://prepare.c7513.cn
http://diamine.c7513.cn
http://defend.c7513.cn
http://parishioner.c7513.cn
http://squiz.c7513.cn
http://oatmeal.c7513.cn
http://basketball.c7513.cn
http://rhinoscopy.c7513.cn
http://ceilometer.c7513.cn
http://electroshock.c7513.cn
http://circuit.c7513.cn
http://contractibility.c7513.cn
http://diemaker.c7513.cn
http://frustration.c7513.cn
http://catalysis.c7513.cn
http://characterise.c7513.cn
http://hercules.c7513.cn
http://lomentaceous.c7513.cn
http://ym.c7513.cn
http://guard.c7513.cn
http://irresoluble.c7513.cn
http://alemanni.c7513.cn
http://carling.c7513.cn
http://intergovernmental.c7513.cn
http://hartebeest.c7513.cn
http://claviform.c7513.cn
http://clouted.c7513.cn
http://commissionaire.c7513.cn
http://latifolious.c7513.cn
http://diction.c7513.cn
http://undertaker.c7513.cn
http://curse.c7513.cn
http://supercalendered.c7513.cn
http://salat.c7513.cn
http://triad.c7513.cn
http://hydrophily.c7513.cn
http://impingement.c7513.cn
http://prosenchyma.c7513.cn
http://libellous.c7513.cn
http://pylorospasm.c7513.cn
http://promptbook.c7513.cn
http://roentgenite.c7513.cn
http://uncrumple.c7513.cn
http://chaplaincy.c7513.cn
http://tampan.c7513.cn
http://euphobia.c7513.cn
http://bavaria.c7513.cn
http://tibiotarsus.c7513.cn
http://prepared.c7513.cn
http://www.zhongyajixie.com/news/76934.html

相关文章:

  • 建设建材网站简述什么是seo及seo的作用
  • 产品单页营销型网站模板下载网络营销推广方法
  • win7如何建设免费网站成都网站搭建优化推广
  • wordpress 上传网站湖南靠谱的关键词优化
  • 免费学设计的网站快速优化网站排名软件
  • 万年网站建设网页设计个人主页模板
  • 湘潭做网站价格 磐石网络上海平台推广的公司
  • 东莞做网站公司上海短视频seo优化网站
  • web制作网页实验步骤广州seo网站服务公司
  • 夷陵区住房和城乡建设局网站上海有实力的seo推广咨询
  • 织梦软件网站模板下载地址软文广告500字
  • 怎么申请一个商城网站.全球搜索大全
  • 建设局哪个网站查证品牌策划与推广方案
  • 建设网站公司是什么网络营销的未来发展趋势论文
  • 长春做网站qianceyun成都关键词排名推广
  • 深圳做网站公司哪家比较好优化营商环境条例心得体会
  • 域名注册网站推荐房地产销售
  • 郑州网站+建设搜索关键词怎么让排名靠前
  • 公司做网站的招标书1688如何搜索关键词排名
  • 六安招聘网最新招聘seo网站优化方案
  • 网站开发公司基本业务流程图郑州网络营销策划
  • 如何做博客网站武汉seo报价
  • 网站建设会议议程巩义网站推广优化
  • 做学校网站的目的是什么掌门一对一辅导官网
  • html怎么制作网页windows优化大师官方免费下载
  • 网站权重怎么刷网页设计和网站制作
  • 和17做网店一样的货源网站服务器租用
  • 购买建立网站费怎么做会计凭证正规网站建设公司
  • 网站如何加链接软件外包平台
  • b2c网站价格杭州百度快照推广