python - 在图像上查找点坐标

标签 python numpy opencv matplotlib

我创建了随机点,并将这些点加倍添加到列表中。然后,我绘制图形并另存为图像。

我可以使用此代码从一个点到另一点画一条线:cv2.line(img=result,pt1=,pt2=,color=(0,255,255),thickness=5)
我那里有个问题。如果我对图形使用plt.show(),则列表中将包含所有点坐标。但是,当我将此图形另存为图像并显示为cv2 lib时,所有点的坐标都会发生变化。

  • 如何在图像上找到这些点的坐标?

  • Graphic
  • 例如:在此图形上,您可以看到(1,4)point。如果我将此图形另存为图像,则此点将在图像上获得(104,305)坐标。
  • import numpy as np
    import random
    import matplotlib.pyplot as plt
    import cv2
    
    points = np.random.randint(0, 9, size=(18,2))
    print(points)
    plt.plot(points[:,0], points[:,1], '.',color='k')
    
    plt.savefig("graphic.png",bbox_inches="tight")
    result = cv2.imread("graphic.png")
    
    
    cv2.imshow("Graphic",result)
    
    

    最佳答案

    我认为您在混淆自己。

  • 您的x,y坐标从底部-图像的左上角开始,首先具有x坐标,并假设图像的宽度为9像素。
  • OpenCV 存储相对于顶部-左上角的点,首先具有y坐标,并引用数百像素宽的图像。
  • 关于python - 在图像上查找点坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62406017/

    相关文章:

    python - 使用 Python3 在 AWS lambda 中进行多线程处理

    python - 全局变量未定义

    python - 我们如何在 python 中的一行中随机填充 1 或 0 的矩阵?

    python - 在图像中获取新对象

    python - 无法使用 OpenCV 4.1.1 VideoCapture 在 MacBook Pro Catalina 操作系统中读取视频

    python - 如何将向量拆分为列 - 使用 PySpark

    python - matplotlib 文本框中多行文本的水平对齐

    计算灵敏度和特异性的 Pythonic 方法

    python - python numpy 数组的结构

    python - VideoCapture的OpenCV段错误