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

网站安装重庆seo网站收录优化

网站安装,重庆seo网站收录优化,中国容桂营销网站建设,东莞网页设计与制作操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 distanceTransform是OpenCV库中的一个非常有用的函数,主要用于计算图像中每个像素到最近的背景(通常是非零像素到零像素&…
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

功能描述

distanceTransform是OpenCV库中的一个非常有用的函数,主要用于计算图像中每个像素到最近的背景(通常是非零像素到零像素)的距离。它在计算机视觉和图像处理中有多种应用,以下是其中一些主要用途:

1.形态学分析:

  • 细化(Skeletonization):距离变换常用于细化图像,即获取图像的骨架,这对于字符识别、形状分析等很有帮助。
  • 膨胀和腐蚀:结合距离变换和阈值操作,可以实现精确的形态学膨胀和腐蚀。

2.物体分割:

  • 确定前景区域:距离变换可以帮助确定图像中的前景区域,特别是在二值图像中。
  • 种子点选择:在分水岭算法中,距离变换可以用于确定种子点,从而更好地分割物体。

3.特征提取:

  • 质心定位:对于连通组件,距离变换可以帮助找到其质心或重心。
  • 边缘检测:可以用于边缘增强,通过分析像素到边界点的距离来突出边缘。

4.路径规划和避障:

  • 在机器人导航和路径规划中,距离变换可以提供一个关于障碍物距离的信息图,帮助规划最优路径。

5.热力图生成:

  • 距离变换的结果可以被可视化为热力图,展示不同区域的“热度”或重要性。

6.形状描述符:

  • 在模式识别中,距离变换可以作为形状描述的一部分,帮助识别和分类不同的形状。

7.医学影像分析:

  • 在医疗图像处理中,距离变换可以用于测量结构的厚度或距离,例如血管壁的厚度。

cv::distanceTransform函数计算从二值图像中每个像素到最近零像素的近似或精确距离。对于零像素的图像,显然距离将为零。

当maskSize等于DIST_MASK_PRECISE且distanceType等于DIST_L2时,函数运行在文献[83]中描述的算法。此算法利用TBB库进行了并行化。

在其他情况下,使用文献[34]中的算法。这意味着对于每个像素,函数寻找到达最近零像素的最短路径,该路径由基本移动组成:水平、垂直、对角线或骑士移动(骑士移动适用于5×5的掩模)。总距离被计算为这些基本距离的总和。由于距离函数应当是对称的,所以所有的水平和垂直移动必须具有相同的代价(记作a),所有对角线移动必须具有相同的代价(记作b),所有骑士移动也必须具有相同的代价(记作c)。对于DIST_C和DIST_L1类型,距离被精确计算;而对于DIST_L2(欧几里得距离),距离只能计算出相对误差(5×5掩模给出更准确的结果)。对于a、b和c,OpenCV使用原论文中提出的值:

  • DIST_L1: a = 1, b = 2
  • DIST_L2:
    • 3 x 3: a=0.955, b=1.3693
    • 5 x 5: a=1, b=1.4, c=2.1969
  • DIST_C: a = 1, b = 1

通常,为了快速、粗略的距离估算DIST_L2,使用3×3掩模。为了更精确的距离估算DIST_L2,使用5×5掩模或精确算法。需要注意的是,无论是精确算法还是近似算法,它们的时间复杂度都是与像素数量线性的。

这种函数变体不仅计算每个像素(x,y)的最小距离,还标识出最近的由零像素组成的连通组件(当labelType等于DIST_LABEL_CCOMP)或最近的零像素(当labelType等于DIST_LABEL_PIXEL)。组件/像素的索引存储在labels(x, y)中。当labelType等于DIST_LABEL_CCOMP时,函数自动在输入图像中查找零像素的连通组件,并用不同的标签标记它们。当labelType等于DIST_LABEL_PIXEL时,函数遍历输入图像并对所有零像素标记不同的标签。

在这种模式下,复杂度仍然是线性的。也就是说,该函数提供了一种非常快速的方法来计算二值图像的Voronoi图。目前,第二种变体只能使用近似距离变换算法,即不支持maskSize= DIST_MASK_PRECISE。

函数原型

void cv::distanceTransform	
(	InputArray 	src,OutputArray 	dst,OutputArray 	labels,int 	distanceType,int 	maskSize,int 	labelType = DIST_LABEL_CCOMP 
)		

参数

  • src:这是输入的8位单通道(通常是二值化的)源图像。每个像素值要么是0(背景),要么是255(前景),函数会计算每个前景像素到最近背景像素的距离。

  • dst:这是输出图像,包含计算出的距离信息。它是一个8位或32位浮点型的单通道图像,与src图像具有相同的尺寸。每个像素值表示该像素到最近的背景像素的距离。

  • labels:这是输出的二维标签数组(离散的Voronoi图)。它具有CV_32SC1(32位整数)类型,并且与src图像具有相同的尺寸。每个像素值代表了最近的背景像素或背景像素组成的连通组件的标签。

  • distanceType:这指定了距离类型,它定义了计算距离的方式,具体包括:

    • DIST_L1:城市街区距离,也称为曼哈顿距离。
    • DIST_L2:欧几里得距离。
    • DIST_C:棋盘距离,也称为无限范数距离。
  • maskSize:这是距离变换所使用的掩模大小。它定义了计算距离时考虑的邻域大小。DIST_MASK_PRECISE在此变体中不受支持。对于DIST_L1或DIST_C距离类型,参数被强制为3,因为3×3的掩模可以给出与5×5或任何更大窗口相同的距离结果。

  • labelType:这定义了要构建的标签数组的类型,具体包括:

    • DIST_LABEL_CCOMP:每个连通组件的背景像素都被赋予一个唯一的标签。
    • DIST_LABEL_PIXEL:每个背景像素都被赋予一个唯一的标签。

函数原型2


void cv::distanceTransform	
(	InputArray 	src,OutputArray 	dst,int 	distanceType,int 	maskSize,int 	dstType = CV_32F 
)		

参数2

  • src 这是输入的8位单通道(通常是二值化的)源图像.
  • dst 这是输出图像,包含计算出的距离信息,它是一个8位或32位浮点型的单通道图像,与src图像具有相同的尺寸。
  • distanceType 距离的类型,参见DistanceTypes
    maskSize 距离变换掩模的大小,参见DistanceTransformMasks。在DIST_L1或DIST_C距离类型的情况下,该参数被强制为3,因为3×3的掩模可以得到与5×5或任何更大孔径相同的结果.
  • dstType 输出图像的类型。它可以是CV_8U或CV_32F。CV_8U类型仅能用于函数的第一个变体,并且当distanceType等于DIST_L1时。

示例源码

#include <iostream>
#include <opencv2/opencv.hpp>int main()
{// 读取图像cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/hawk.jpg", 0 );  // 以灰度模式读取图像if ( src.empty() ){std::cout << "Error : Image cannot be loaded..!!" << std::endl;return -1;}cv::Size sz2Sh( 300, 400 );resize( src, src, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );// 将图像转换为二值图像cv::Mat binary;cv::threshold( src, binary, 127, 1, cv::THRESH_BINARY );// 计算距离变换cv::Mat dist;cv::distanceTransform( binary, dist, cv::DIST_L2, 3 );// 将距离变换结果归一化到[0,255]范围cv::normalize( dist, dist, 0, 1, cv::NORM_MINMAX );// 显示原始图像和距离变换结果cv::imshow( "Source Image", src );cv::imshow( "Distance Transform", dist );cv::waitKey( 0 );return 0;
}

运行结果

原图:
在这里插入图片描述

距离变换图:
在这里插入图片描述

http://www.hkea.cn/news/291483/

相关文章:

  • 洛阳建筑公司排名长沙官网seo服务
  • 网站关键词优化公司哪家好企业网站seo点击软件
  • 做网站有必要?优化师培训
  • 网站怎么发布信息百度推广优化技巧
  • 西安软件培训百度百科优化排名
  • 网站上文章加入音乐是怎么做的网页代码
  • 深圳公布最新出行政策徐州seo招聘
  • wordpress的漏洞seo优化知识
  • 网站建设高端seo和sem分别是什么
  • 成交功能网站怎么推广自己的产品
  • 北京宣传片网站seo综合查询
  • 滨海网站建设公司百度指数的使用
  • 湛江网站建设外包seo到底是什么
  • 做收集信息的网站河源市企业网站seo价格
  • 有赞短链接生成汕头seo推广
  • 团队做网站分工搜索引擎案例分析结论
  • 企业网站的建设过程做整站优化
  • 最简单的cms网站怎么做惠州抖音seo
  • 做网站销售怎么开发客户自己做一个网站
  • wordpress发布文章空白整站优化 mail
  • vs怎么做网站的首页seo知识培训
  • 网站建设的一般步骤包括知乎关键词排名工具
  • 网页设计怎样做一个网页seo软件哪个好
  • 销售性网站建设需求seo案例
  • 企业怎样选择域名做网站电脑突然多了windows优化大师
  • 网站一元空间有哪些呀品牌策划方案范文
  • 最便宜的网站建设企点
  • 网站代码加密深圳新闻今日最新
  • 不要钱做网站软件网站seo优化效果
  • 公司做网站提供产品加盟费互联网销售怎么做