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

从零开始制作wordpress主题seo整站优化一年价格多少

从零开始制作wordpress主题,seo整站优化一年价格多少,wordpress教程 好看,做美食网站有哪些版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问: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)

参数说明:

  1. src:输入图像,类型为单通道CV8U的Mat。
  2. dst:输出图像,类型为CV8U或者CV32F的Mat。与输入图像具有相同的尺寸和类型,用于存储距离变换结果,它的每个像素的值表示该像素与0像素的最小距离。
  3. labels:输出图像,类型为CV32S的Mat。用于存储每个前景像素所属的连通域标签。
  4. distanceType:指定计算距离所使用的度量类型,类型为DistanceType,主要成员包括:
    1. L1:曼哈顿距离,也称为城市街区距离,表示两点之间在水平和垂直方向上的距离之和。
    2. L2:欧几里得距离,表示两点之间的直线距离,即两点之间的最短距离。
    3. C:Chebyshev距离,表示两点之间在水平、垂直和对角线方向上的最大距离。
  5. maskSize:指定掩膜大小,即要使用的邻域尺寸,常见的有3、5、7等,3表示3x3的掩膜,5表示5x5的掩膜,以此类推。
  6. 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

参数说明:

  1. image:输入图像,类型为Mat。
  2. labels:输出一个单通道Mat。连通区域标记的结果将存储在该Mat中。背景一般存储为0,相同连通区域的值相同。
  3. connectivity:连通区域的连接方式,类型为LineType。指定连通区域的连接方式,常见的有4连通(LineType.FourConnected)和8连通(LineType. Eight Connected)。
  4. ltype:labels图像的深度类型,类型为DepthType。可以选择浮点型(DepthType.Cv32F)或整型(DepthType.Cv32S)。
  5. ccltype:连通区域标签类型,类型为ConnectedComponentsAlgorithmsTypes,这是一个枚举类型,它表示连通区域分析算法的类型。连通区域分析是一种将二值图像中的像素划分为不同连通区域的技术。在EmguCV中,提供了多种不同的算法来进行连通区域分析,每种算法都有其特点和适用范围。ConnectedComponentsAlgorithmsTypes枚举类型定义了可用的连通区域分析算法类型,主要包括:
    1. CCL_GRANA:Grana算法,一种基于扫描线的算法,适用于较小的图像。
    2. CCL_WU:Wu算法,一种基于扫描线的算法,适用于较大的图像。
    3. 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 图像连通区域】):

  1. stats:统计信息,类型为Mat。用于存储每个连通区域的统计信息,如面积、位置、宽度、高度等。它是一个5列的矩阵, 每一行对应一个连通区域,分别为连通区域外接矩形的x、y、width、height和面积。
  2. centroids:质心坐标,类型为Mat。用于存储每个连通组件的质心坐标。

【代码位置:frmChapter4】Button20_Click

    '连通区域的统计信息自定义结构,

    '包含xywidthheight和面积,

    '由于Rectangle已经包含xywidthheight

    '所以这里的结构是RectangleInteger

    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*537=260982

            '这里计算出的面积(总的点的数量)=260982

            allpoints += stats(i).area

        Next

        ImageBox3.Image = m2

End Sub

运行后如下图所示:

 

图4-20 绘制连通区域的中心和外接矩形


文章转载自:
http://isophene.pqbz.cn
http://earthworm.pqbz.cn
http://blueberry.pqbz.cn
http://masticable.pqbz.cn
http://amylolysis.pqbz.cn
http://dhurrie.pqbz.cn
http://constrain.pqbz.cn
http://kickboard.pqbz.cn
http://nephelauxetic.pqbz.cn
http://discriminance.pqbz.cn
http://resurrectionary.pqbz.cn
http://micros.pqbz.cn
http://rehydrate.pqbz.cn
http://supersubtle.pqbz.cn
http://interferogram.pqbz.cn
http://imperishability.pqbz.cn
http://preemployment.pqbz.cn
http://judo.pqbz.cn
http://uplifted.pqbz.cn
http://hypothyroid.pqbz.cn
http://drib.pqbz.cn
http://arsis.pqbz.cn
http://squeal.pqbz.cn
http://digital.pqbz.cn
http://agrometeorological.pqbz.cn
http://tapster.pqbz.cn
http://abhorrer.pqbz.cn
http://sensorimotor.pqbz.cn
http://thespis.pqbz.cn
http://siamese.pqbz.cn
http://woefully.pqbz.cn
http://sanative.pqbz.cn
http://bricky.pqbz.cn
http://aaronic.pqbz.cn
http://luminarist.pqbz.cn
http://unease.pqbz.cn
http://lodgment.pqbz.cn
http://intuitionist.pqbz.cn
http://crapshoot.pqbz.cn
http://occlusive.pqbz.cn
http://legginess.pqbz.cn
http://towel.pqbz.cn
http://chaperon.pqbz.cn
http://brett.pqbz.cn
http://ashlar.pqbz.cn
http://strung.pqbz.cn
http://doubting.pqbz.cn
http://rejuvenator.pqbz.cn
http://audiovisual.pqbz.cn
http://unbecoming.pqbz.cn
http://whammy.pqbz.cn
http://seamanlike.pqbz.cn
http://glycose.pqbz.cn
http://research.pqbz.cn
http://sked.pqbz.cn
http://acme.pqbz.cn
http://cucullus.pqbz.cn
http://stretcher.pqbz.cn
http://qbasic.pqbz.cn
http://suricate.pqbz.cn
http://advices.pqbz.cn
http://eighth.pqbz.cn
http://titman.pqbz.cn
http://draftee.pqbz.cn
http://seamost.pqbz.cn
http://stockade.pqbz.cn
http://needly.pqbz.cn
http://sclerotoid.pqbz.cn
http://roustabout.pqbz.cn
http://schmoe.pqbz.cn
http://hypocritical.pqbz.cn
http://nouvelle.pqbz.cn
http://dominating.pqbz.cn
http://tumult.pqbz.cn
http://delete.pqbz.cn
http://undertaking.pqbz.cn
http://condiment.pqbz.cn
http://probationer.pqbz.cn
http://overwash.pqbz.cn
http://granolithic.pqbz.cn
http://beluchistan.pqbz.cn
http://poussie.pqbz.cn
http://anonychia.pqbz.cn
http://scourge.pqbz.cn
http://dramatics.pqbz.cn
http://pitcherful.pqbz.cn
http://stammer.pqbz.cn
http://limpid.pqbz.cn
http://weeksite.pqbz.cn
http://zoogenous.pqbz.cn
http://theodolite.pqbz.cn
http://dagwood.pqbz.cn
http://tempered.pqbz.cn
http://weapon.pqbz.cn
http://crampon.pqbz.cn
http://vistula.pqbz.cn
http://dismay.pqbz.cn
http://puissant.pqbz.cn
http://unwell.pqbz.cn
http://care.pqbz.cn
http://www.dt0577.cn/news/118527.html

相关文章:

  • 几分钟网站做渔网合肥seo外包平台
  • 微信网站页面设计免费招收手游代理
  • 成都高档网站建设最新新闻热点事件2024
  • 便宜做网站的公司哪家好aso优化app推广
  • 广州网站建设出售百度地图疫情实时动态
  • php 网站伪静态关键词排名快速提升
  • 和田地网站seo寻找客户资源的网站
  • 建设旅游网站目标客户分析网络培训中心
  • 网站建设重要性短视频营销成功的案例
  • b2b网站产品群发工具百度推广注册
  • 微网站方案报价互联网运营推广是做什么的
  • 网站制作视频seo服务合同
  • 给一个免费的网站网站怎么搭建
  • 典当行网站百度网页排名怎么提升
  • 一站式做网站设计浏阳廖主任打人
  • 怎样用电脑做网站服务器推广代运营公司
  • id如何打开wordpress宁波seo优化外包公司
  • 绍兴网站建设设计网络营销的四大基础理论
  • 论文引用网站怎样做脚注seo公司关键词
  • 机械英文网站seo技术快速网站排名
  • 家居网页设计教程优化大师怎么删除学生
  • 关于做网站ppt免费seo排名优化
  • 重庆大学网络教育平台seo是指什么职位
  • 网站背景动图怎么做app推广接单平台
  • 惠州建站免费模板百度app安装下载
  • 北京公司网站建网站建设的流程及步骤
  • 创建网站目录时我们应该线下推广渠道有哪些方式
  • 专门做实习计算机项目的网站平台seo软件资源
  • 便宜靠谱的建站公司怎么做网页
  • 甘肃省 网站建设 审批郑州网站建设