python获取图片坐标系中的图形,将其展示到新的坐标系中,并存储到excel中

news2024/11/23 15:25:28

python获取图片坐标系中的图形,将其展示到新的坐标系中,并存储到excel中

1.原始图片
请添加图片描述
2.重新定义转换的图片
在这里插入图片描述
3.代码展示

import cv2
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

def get_curve_vertices(lines):
    vertices = []
    for line in lines:
        x1, y1, x2, y2 = line[0]
        vertices.append((x1, y1))
        vertices.append((x2, y2))
    vertices = np.array(vertices)

    connectivity = 4
    output = cv2.connectedComponentsWithStats(blurred, connectivity, cv2.CV_32S)
    labels = output[1]
    stats = output[2]

    curve_labels = np.unique(labels)
    curve_labels = curve_labels[1:]

    curve_vertices = []
    for label in curve_labels:
        index = np.where(labels == label)
        curve_pixels = vertices[index]
        curve_center = np.mean(curve_pixels, axis=0)
        curve_vertices.append(curve_center)

    return curve_vertices

image_path = "path/to/image.jpg"
output_path = "path/to/output.xlsx"

image = cv2.imread(image_path)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blurred, 50, 150)
lines = cv2.HoughLinesP(edges, 1, np.pi/180, threshold=100, minLineLength=100, maxLineGap=10)

curve_vertices = get_curve_vertices(lines)
x = [pt[0] for pt in curve_vertices]
y = [pt[1] for pt in curve_vertices]

# 创建画布并绘制图形
fig, ax = plt.subplots()
ax.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
ax.plot(x, y, '-o', color='red', linewidth=2)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Curve')
plt.show()

data = {'X': x, 'Y': y}
df = pd.DataFrame(data)
df.to_excel(output_path, index=False)

4.获取到坐标存储到excel中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/784431.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【文末送书】Python高并发编程:探索异步IO和多线程并发

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。搜…

RISC-V汇编指令

写在最前面:这一篇是UC Berkeley的CS61C的笔记,根据我自己的理解进行学习记录,其中贴的一些图片来自于课程PPT。 了解汇编之前,我们需要先了解为什么需要汇编?以下是我的理解: 机器执行的命令都是些二进制…

六边形架构和分层架构的区别?

六边形架构和分层架构是什么? 六边形架构(Hexagonal Architecture)和分层架构(Layered Architecture)是两种常见的软件架构模式。六边形架构强调将核心业务逻辑与外部依赖解耦,通过接口与外部世界进行通信。…

hcip mgre与rip实验

要求: 1.toop搭建 2.IP地址规划 R1g 0/0/1 192.168.1.1 24 s 4/0/0 188.0.0.2 24 t:10.0.0.1 24R2 s 4/0/0 188.0.0.1 24 s 4/0/1 188.0.1.1 24 s 3/0/0 188.0.2.1 24 loop0 8.8.8.8 24 t:10.0.0.2 24 R3g…

本地 IDC 中的 K8s 集群如何以 Serverless 方式使用云上计算资源

作者:庄宇 在前一篇文章《应对突发流量,如何快速为自建 K8s 添加云上弹性能力》中,我们介绍了如何为 IDC 中 K8s 集群添加云上节点,应对业务流量的增长,通过多级弹性调度,灵活使用云上资源,并通…

Python自动化测试框架pytest的详解安装与运行

这篇文章主要为大家介绍了Python自动化测试框架pytest的简介以及安装与运行,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步 1. pytest的介绍 pytest是一个非常成熟的全功能的python测试工具,它主要有以下特征: 简…

二进制子集题解

样例输入: 13样例输入: 0 1 4 5 8 9 12 13思路分析: 这道题大体就是进制转换然后按位 d f s dfs dfs。进制转换比较好理解,不懂得可以自行 b d f s ( 百度优先搜索 ) bdfs(百度优先搜索) bdfs(百度优先搜索)一下。 代码&#…

【LeetCode】260.只出现一次的数字 III(找出单身狗)

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》 🌝每一个不曾起舞的日子,都是对生命的辜负。 目录 前言: 一只单身狗: 两只单身狗: 前言&#x…

HTTPS安全套接字层超文本传输协议

HTTPS安全套接字层超文本传输协议 HTTPS简介HTTPS和HTTP的主要区别客户端在使用HTTPS方式与Web服务器通信时的步骤SSL/TLS协议的加密(握手)过程为什么数据传输阶段使用对称加密HTTPS 的优点HTTPS 的缺点HTTPS 的优化证书优化会话复用 HTTPS简介 HTTP协议…

Keil系列教程07_Configuration(一)

1写在前面 本文带来的内容为“Configuration”,即配置。而这里的“配置”和前面“工程目标选项配置”是完全不同的两种配置。 工程目标选项配置是针对工程目标,保存在工程文件(.uvprojx和.uvoptx)。这里的Configuration是针对IDE…

在本地git仓库查看远端的URL

右键调出选项栏 选择git-远端,选择远端的内容就可以看到URL了

数据结构之时间复杂度

目录 一、时间复杂度的概念 二、大O的渐进表示法 三、常见时间复杂度计算举例 一、时间复杂度的概念 时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从…

OpenCV图像处理-图像分割-MeanShift

MeanShift 1. 基本概念2.代码示例 1. 基本概念 MeanShift严格说来并不是用来对图像进行分割的,而是在色彩层面的平滑滤波。它会中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的的颜色区域,它以图像上任意一点P为圆心&…

架构重构实践心得

一、前言 大多数的技术研发都对重构有所了解,而每个研发又都有自己的理解。从代码重构到架构重构,我参与了携程大型全链路重构项目,积累了一点经验心得,在此抛砖引玉和大家分享。 二、重构的定义 重构是指在不改变外部行为的情…

MySQL数据库(十)

目录 一、Java的数据库编程:JDBC 1.1JDBC工作原理 二、Java具体连接数据库 2.1准备过程 2.2代码连接数据库 一、Java的数据库编程:JDBC JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API&…

华为认证HCIA-HCIP-HCIEdatacom题库解析+机构视频+实验

题库包含有2023年最新HCIA-datacom题库、HCIP-datacom题库,HCIE-datacom题库, 云计算HCIA,HCIP题库,云服务HCIA,HCIP题库,华为存储HCIP题库,华为安全HCIP题库 ,学习笔记,…

webrtc QOS笔记 Nack机制浅析

nack源码浅析 Video Nack 机制概述 nack的机制非常简洁,收到非连续的packet seq 会将丢包的seq插入自身nack_list缓存, 之后立即发送一次那组丢包的seq重传请求, 之后如果超时仍然没有收到重传回来的seq, 就通过定时任务继续发送. nack 三个缓存list nack_list_ : 用于记录已丢…

10分钟内入门 ArcGIS Pro

本文来源:GIS荟 大家好,这篇文章大概会花费你10分钟的时间,带你入门 ArcGIS Pro 的使用,不过前提是你有 ArcMap 使用经验。 我将从工程文件组织方式、软件界面、常用功能、编辑器、制图这5个维度给大家介绍。 演示使用的 ArcGI…

【SQL应知应会】表分区(一)• Oracle版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分区表 • Oracle版 前言一、分区表1.什么是表分区…

《电脑城的衰退:时代变迁中的背影》

随着科技的不断进步和电子商务的兴起,电脑城这个曾经火爆的地方正逐渐走向衰退甚至面临消失。对于这一变迁,我认为既有利也有弊。 首先,电脑城的衰退带来了一定的便利。传统的电脑城通常拥有大量的实体店铺,买家必须亲自前往选择…