opencv提取中心线坐标点算法(python)

这篇具有很好参考价值的文章主要介绍了opencv提取中心线坐标点算法(python)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

opencv结合gis,根据提取中心线坐标点方法

opencv提取中心线,opencv,算法,python
opencv提取中心线,opencv,算法,python

核心思路

一、通过opencv方法提取骨线,
二、通过骨线,提取每个线的像素坐标
三、循环每个点根据距离连接
循环思路:
1、寻找一个点的八个方向,确定点存在数组里面,就放入线中
opencv提取中心线,opencv,算法,python
2、交点处,在交点位置就新建一个线,通过读取一种条线在接着往下寻找点,没有读取的线存在数组中,当一条线到头后,在数组读取下一个节点,只到数组不存在数据,整个过程跑完。
opencv提取中心线,opencv,算法,python

代码部分

def point_to_line(centerline):
    """
    点连成线
    :param centerline: 坐标点集
    :return: 返回线集合
    """
    centerline = centerline.tolist()
    point_s = []
    point_conpy = []

    line = []
    for c in centerline:
        if str(line).find(str(c)) == -1:
            point = c
            line_1 = [c]
            while True:
                p = []
                for x in range(point[0] - 1, point[0] + 2):
                    for y in range(point[1] - 1, point[1] + 2):
                        if [x, y] in centerline and [x, y] != point and [x, y] != line_1[len(line_1)-2]:
                            p.append([x, y])
                if len(p) > 1:
                    if len(line_1) > 1:
                        line.append(line_1)
                    for al in p:
                        if str(point_conpy).find(str([al, point])) == -1 and str(point_conpy).find(str([ point, al])) ==-1:
                            point_conpy.append([point, al])
                            point_s.append([point, al])
                    if len(point_s) == 0:
                        point_s.append([point, p[0]])
                    line_1 = point_s[0]
                    point_s = point_s[1:]
                    point = line_1[1]
                if len(p) == 1:
                    line_1.append(p[0])
                    point = p[0]
                if len(p) == 0:
                    if len(line_1) > 1:
                        line.append(line_1)
                    if len(point_s) == 0:
                        break
                    else:
                        line_1 = point_s[0]
                        point_s = point_s[1:]
                        point = line_1[1]
    line_c = []
    for l in line:
        if (l in line_c) is False and (l[::-1] in line_c) is False:
            if len(l) > 0:
                line_c.append(l)
    return line_c

效果展示

opencv提取中心线,opencv,算法,python

opencv提取中心线,opencv,算法,python文章来源地址https://www.toymoban.com/news/detail-845804.html

到了这里,关于opencv提取中心线坐标点算法(python)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图片坐标提取软件/图片坐标点和像素点颜色提取软件/图片坐标获取工具/Python图片坐标获取源码/图片像素坐标获取软件/查看图片点XY坐标(完全开源)

    该软件使用python写的,可以提取像素点的坐标还有也能获取像素点的16进制数据RGB565和RGB888(RGB888仅最新的源码才支持),可以单点坐标也可以按键坐标,甚至可以使用简单的左右键配合使用,自动复制到粘贴板,如果图片太大或者太小,也支持图片缩小放大,但是软件会对像素

    2024年02月15日
    浏览(43)
  • 如何用python的opencv库查看一张图片的坐标点

    介绍 安装 OpenCV 绘制矩形 查看点坐标 总结 OpenCV 是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉功能。在科学研究、计算机视觉应用以及机器学习领域,它都被广泛应用。本文将介绍如何使用 Python 的 OpenCV 库来查看一张图片的坐标点。 在开始之前,我们首

    2024年02月12日
    浏览(45)
  • 【OpenCV-Python】——单/多模板匹配&分水岭算法图像分割&图像金字塔&交互式前景提取

    目录 前言: 1、模板匹配 1.1 单目标匹配 1.2 多目标匹配 2、图像分割

    2024年02月07日
    浏览(49)
  • 高德API JS 高德地图获取多个坐标点的中心点

    我需要: 在地图上展示多个地点 地图缩放到合适的大小,要求刚好能显示全部点位 边缘留有一部分间隔。 做成如图所示这样。 经过一下午的研究,弄出来了。 需要以下这些 AMap 的类库: AMap.Bounds() 区域 AMap.LngLat() 点坐标(基础点位) AMap.setBounds() 设置地图区域,这会自动

    2024年02月07日
    浏览(53)
  • 学习笔记:Opencv实现图像特征提取算法SIFT

    2023.8.19 为了在暑假内实现深度学习的进阶学习,特意学习一下传统算法,分享学习心得,记录学习日常 SIFT的百科: SIFT = Scale Invariant Feature Transform, 尺度不变特征转换 全网最详细SIFT算法原理实现_ssift算法_Tc.小浩的博客-CSDN博客 在环境配置中要配置opencv: pip install opencv-c

    2024年02月12日
    浏览(44)
  • OpenCV图像特征提取学习五,HOG特征检测算法

    一、HOG向梯度直方图概述   向梯度直方图(Histogram of Oriented Gradient, HOG)特征是基于对稠密网格中归一化的局部方向梯度直方图的计算。此方法的基本观点是:局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述,即使我们不知道对应的梯度和边缘的位置。在

    2024年02月04日
    浏览(45)
  • 基于C++、GDAL、OpenCV的矢量数据骨架线提取算法

    基于C++、GDAL、OpenCV的矢量数据骨架线提取算法 CGAL已经实现了该功能,但由于CGAL依赖于Boost库,编译后过大,因此本文所采用的这套方式实现骨架线提取功能。 效果: 思路: 1、将导入shp按照要素逐一拆分成新的shp 2、将所有拆分后的shp分别转栅格,利用OpenCV提取骨架线 3、

    2024年02月12日
    浏览(69)
  • python使用opencv提取光流

    光流flow特征中包含了一个视频当中运动相关的信息,在视频动作定位当中光流特征使用的比较多,所以记录一下提取光流特征的方法。 使用的方法是TVL1方法,最终提取的光流图片还可以配合I3D模型进行特征的提取。光流的计算先需要将视频一帧一帧提取出来,然后再通过连

    2024年02月05日
    浏览(38)
  • opencv 图像分割与提取(python)

    图像分割与提取 图像中将前景对象作为目标图像分割或者提取出来。 对背景本身并无兴趣 分水岭算法及GrabCut算法对图像进行分割及提取。 用分水岭算法实现图像分割与提取 分水岭算法将图像形象地比喻为地理学上的地形表面,实现图像分割,该算法非常有效。 算法原理

    2024年02月04日
    浏览(46)
  • Lesson4-3:OpenCV图像特征提取与描述---SIFT/SURF算法

    学习目标 理解 S I F T / S U R F SIFT/SURF S I FT / S U RF 算法的原理, 能够使用 S I F T / S U R F SIFT/SURF S I FT / S U RF 进行关键点的检测 1.1 SIFT原理 前面两节我们介绍了 H a r r i s Harris H a rr i s 和 S h i − T o m a s i Shi-Tomasi S hi − T o ma s i 角点检测算法,这两种算法具有旋转不变性,但不具

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包