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

网站定制一般价格多少php网站备份

网站定制一般价格多少,php网站备份,企业软件下载,临沂网站建设公司全国版权声明#xff1a;本文为博主原创文章#xff0c;转载请在显著位置标明本文出处以及作者网名#xff0c;未经作者允许不得用于商业目的。 教程VB.net版本请访问#xff1a;EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问#xff1a;EmguCV学习笔记 C# 目录-CSD…  版权声明本文为博主原创文章转载请在显著位置标明本文出处以及作者网名未经作者允许不得用于商业目的。 教程VB.net版本请访问EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问EmguCV学习笔记 C# 目录-CSDN博客 笔者的博客网址https://blog.csdn.net/uruseibest 教程配套文件及相关说明以及如何获得pdf教程和代码请移步EmguCV学习笔记 学习VB.Net知识请移步 https://blog.csdn.net/uruseibest/article/details/69663231 学习C#知识请移步https://blog.csdn.net/uruseibest/article/details/136127499 4.5 像素距离和连通区域 4.5.1 DistanceTransform 像素距离 在VB.NET中使用EmguCV可以通过CvInvoke.DistanceTransform函数进行距离变换操作。 Public Shared Sub DistanceTransform(src As Emgu.CV.IInputArray, dst As Emgu.CV.IOutputArray, labels As Emgu.CV.IOutputArray, distanceType As Emgu.CV.CvEnum.DistType, maskSize As Integer, Optional labelType As Emgu.CV.CvEnum.DistLabelType 0) 参数说明 src输入图像类型为单通道CV8U的Mat。dst输出图像类型为CV8U或者CV32F的Mat。与输入图像具有相同的尺寸和类型用于存储距离变换结果它的每个像素的值表示该像素与0像素的最小距离。labels输出图像类型为CV32S的Mat。用于存储每个前景像素所属的连通域标签。distanceType指定计算距离所使用的度量类型类型为DistanceType主要成员包括 L1曼哈顿距离也称为城市街区距离表示两点之间在水平和垂直方向上的距离之和。L2欧几里得距离表示两点之间的直线距离即两点之间的最短距离。CChebyshev距离表示两点之间在水平、垂直和对角线方向上的最大距离。maskSize指定掩膜大小即要使用的邻域尺寸常见的有3、5、7等3表示3x3的掩膜5表示5x5的掩膜以此类推。labelType指定计算连通域标签所使用的算法类型可选值为DistLabelType.CComp或DistLabelType.Pixel。 【代码位置frmChapter4】Button18_Click、printMatSingle DistanceTransform Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click Dim bte(,) As Byte bte { {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0} } Dim matr As New Matrix(Of Byte)(bte) Dim m As New Mat(matr.Size, DepthType.Cv8U, 1) m matr.Mat Dim mdistance As New Mat(m.Size, DepthType.Cv8U, 1) Dim labels1 As New Mat() CvInvoke.DistanceTransform(m, mdistance, labels1, DistType.L2, 3) 如果参数labels使用nothing那么 mdistance 中的元素类型是single CvInvoke.DistanceTransform(m, mdistance, Nothing, DistType.L2, 3) Call printMatSingle(mdistance) End Sub 输出single类型Mat的元素的值 Private Sub printMatSingle(ByVal m As Mat) Dim matr As New Matrix(Of Single)(m.Rows, m.Cols, m.NumberOfChannels) m.CopyTo(matr) For i As Integer 0 To matr.Rows - 1 For j As Integer 0 To matr.Cols - 1 Console.Write(matr(i, j)) If j matr.Cols - 1 Then Console.Write(,) End If Next Console.WriteLine() Next End Sub 运行后如下图所示 图4-18 像素间距离 4.5.2 connectedComponents 图像连通区域 ConnectedComponents方法是EmguCV中用于实现连通区域分析的函数。在图像处理中经常需要对图像中的连通区域进行分析和处理如区域标记、分割、形状识别等。ConnectedComponents函数可以将图像中的连通区域分析出来并返回每个连通区域的标记和属性信息。声明如下 Public Shared Function ConnectedComponents(image As Emgu.CV.IInputArray, labels As Emgu.CV.IOutputArray, Optional connectivity As Emgu.CV.CvEnum.LineType 8, Optional labelType As Emgu.CV.CvEnum.DepthType 4, Optional cclType As Emgu.CV.CvEnum.ConnectedComponentsAlgorithmsTypes -1) As Integer 参数说明 image输入图像类型为Mat。labels输出一个单通道Mat。连通区域标记的结果将存储在该Mat中。背景一般存储为0相同连通区域的值相同。connectivity连通区域的连接方式类型为LineType。指定连通区域的连接方式常见的有4连通LineType.FourConnected和8连通LineType. Eight Connected。ltypelabels图像的深度类型类型为DepthType。可以选择浮点型DepthType.Cv32F或整型DepthType.Cv32S。ccltype连通区域标签类型类型为ConnectedComponentsAlgorithmsTypes这是一个枚举类型它表示连通区域分析算法的类型。连通区域分析是一种将二值图像中的像素划分为不同连通区域的技术。在EmguCV中提供了多种不同的算法来进行连通区域分析每种算法都有其特点和适用范围。ConnectedComponentsAlgorithmsTypes枚举类型定义了可用的连通区域分析算法类型主要包括 CCL_GRANAGrana算法一种基于扫描线的算法适用于较小的图像。CCL_WUWu算法一种基于扫描线的算法适用于较大的图像。CCL_DEFAULT默认算法使用基于扫描线的算法但会根据图像大小和特征动态选择算法。 返回值 分析出的连通区域的数量。 【代码位置frmChapter4】Button19_Click connectedComponents Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click Dim m1 As New Mat(C:\learnEmgucv\shape.jpg, CvEnum.ImreadModes.Grayscale) ImageBox1.Image m1 二值化 Dim mid1 As New Mat CvInvoke.Threshold(m1, mid1, 150, 255, ThresholdType.BinaryInv) 连通区域分析结果存储到result中 Dim result As New Mat Dim num As Integer 获得连通区域 num CvInvoke.ConnectedComponents(mid1, result, LineType.FourConnected, DepthType.Cv16U) Console.WriteLine(连通区域数量: num) 在本代码中使用的图像获得的连通区域为12含背景result中像素的值从0-11 所以这里看到的是全黑色的图 ImageBox2.Image result Dim img As New Image(Of Gray, Byte)(m1.Size) img result.ToImage(Of Gray, Byte) Dim img1 As New Image(Of Bgr, Byte)(m1.Size) Dim maxsize As Integer 0 使用循环遍历分析出的连通区域这里对非背景0的区域着相同颜色 For i As Integer 0 To img.Rows - 1 For j As Integer 0 To img.Cols - 1 0的区域作为背景 If img.Data(i, j, 0) 0 Then img1.Data(i, j, 0) 0 img1.Data(i, j, 1) 0 img1.Data(i, j, 2) 0 Else Console.WriteLine(img.Data(i, j, 0)) maxsize IIf(maxsize img.Data(i, j, 0), maxsize, img.Data(i, j, 0)) img1.Data(i, j, 0) 0 img1.Data(i, j, 1) 255 img1.Data(i, j, 2) 255 End If Next Next ImageBox3.Image img1 为什么差1因为包含了背景部分。 MessageBox.Show(num  num    maxsize  maxsize) End Sub 运行后如下图所示 图4-19 连通区域 4.5.3 connectedComponentsWithStats ConnectedComponentsWithStats方法是用于进行连通区域分析的函数它可以分析二值图像中的连通区域并返回每个连通区域的标记值、面积、重心和边界框等信息。声明如下 Public Shared Function ConnectedComponentsWithStats(image As Emgu.CV.IInputArray, labels As Emgu.CV.IOutputArray, stats As Emgu.CV.IOutputArray, centroids As Emgu.CV.IOutputArray, Optional connectivity As Emgu.CV.CvEnum.LineType 8, Optional labelType As Emgu.CV.CvEnum.DepthType 4, Optional cclType As Emgu.CV.CvEnum.ConnectedComponentsAlgorithmsTypes -1) As Integer 参数说明其余参数请参看4.4.2节【connectedComponents 图像连通区域】 stats统计信息类型为Mat。用于存储每个连通区域的统计信息如面积、位置、宽度、高度等。它是一个5列的矩阵 每一行对应一个连通区域分别为连通区域外接矩形的x、y、width、height和面积。centroids质心坐标类型为Mat。用于存储每个连通组件的质心坐标。 【代码位置frmChapter4】Button20_Click 连通区域的统计信息自定义结构 包含x、y、width、height和面积 由于Rectangle已经包含x、y、width、height 所以这里的结构是Rectangle和Integer Public Structure sstats Dim rec As Rectangle Dim area As Integer End Structure 连通区域分析 注意白色255代表有数据黑色0代表没有数据 所以要根据图像实际情况确保图像输入之前转换成黑底白图 Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click Dim m1 As New Mat(C:\learnEmgucv\shape.jpg, CvEnum.ImreadModes.Grayscale) ImageBox1.Image m1 二值化 Dim mid1 As New Mat 这里过滤了一部分连通区域 CvInvoke.Threshold(m1, mid1, 150, 255, ThresholdType.BinaryInv) ImageBox2.Image mid1 Dim result As New Mat Dim mstats As New Mat Dim mcentroids As New Mat Dim num As Integer num CvInvoke.ConnectedComponentsWithStats(mid1, result, mstats, mcentroids, LineType.EightConnected, DepthType.Cv16U) Dim stats(num - 1) As sstats 拷贝到sstats数组 mstats.CopyTo(stats) Dim centroids(num - 1) As MCvPoint2D64f 拷贝到点数组 mcentroids.CopyTo(centroids) 载入彩色图像 Dim m2 As New Mat(C:\learnEmgucv\shape.jpg, CvEnum.ImreadModes.AnyColor) 总的面积算下来就是mid1或者result点的数量。 Dim allpoints As Integer 0 For i As Integer 0 To num - 1 画出每个连通区域的中心点 CvInvoke.Circle(m2, New Point(CInt(centroids(i).X), CInt(centroids(i).Y)), 10, New MCvScalar(0, 255, 255), -1) 画出每个连通区域的外接矩形 CvInvoke.Rectangle(m2, stats(i).rec, New MCvScalar(255, 0, 0), 2) 在本例中使用的图像高度486宽度537即总的像素数量486*537260982 这里计算出的面积总的点的数量260982 allpoints stats(i).area Next ImageBox3.Image m2 End Sub 运行后如下图所示 图4-20 绘制连通区域的中心和外接矩形
http://www.dnsts.com.cn/news/78532.html

相关文章:

  • 浙江网站建设哪家专业企业网站维护与销售
  • 彩票走势图网站建设做公司点评的网站
  • 雷神代刷推广网站网站建设流程教案
  • 家居企业网站建设行情怎么打帮人做网站开发的广告
  • 密云做网站的石家庄做网站公司汉狮价格
  • 为什么做民宿网站网站建设如何销售
  • wordpress 关于我们页面模板网站建设html代码优化
  • 福建省建设监理公司网站软件开发报价单
  • 厦门建设服务管理中心网站广东网络营销全网推广策划
  • 哪个网站可以做创意短视频大气婚庆网站源码
  • 高端网站设计图片塑料机械怎么做网站
  • 高端大气网站模板WordPress仿w3c
  • 科技公司.net网站源码企业网站租服务器
  • 如何建网站平台今天新闻最新消息
  • 旅游网站建设目标网站分类php网页转wordpress
  • 如何给网站做排名中国十大财务软件
  • 跳转网站怎么做的阜宁县住房和城乡建设局网站
  • 网站建设安全规范上海优刻得官网
  • wordpress自定义函数关键词优化排名第一
  • 上海网站建设shwzzz网站建设详情报价
  • 西宁网站设计设计建立企业网站最佳的公司
  • 做网站如何计算工资百度云官方网站
  • 网站前缀带wap的怎么做wordpress 主机伪静态404.php seo
  • 网站域名 安全网站搜索引擎友好性分析
  • 北京企业建设网站制作网站开发数据库连接失败
  • 网站描述在哪里写大兴区营销网络推广行业
  • 做餐厅网站的需求分析做餐饮加盟的网站
  • 网站建设汽车后市场分析网络运营怎么学
  • 温州手机网站推广做智能网站系统下载地址
  • 在线探测网站开发语言发广告