如何解决在坐标系之间转换坐标 opencv python
square_1 的角坐标 = (0,1920,1080)。然后,我使用像 roi = square_1[y1:y2,x1:x2]
这样的 numpy 切片将 square_2 定义为正方形内较小的 ROI。然后我使用 square_resize = cv2.resize(square_1,(960,540),interpolation = cv2.INTER_AREA)
调整 square_1 的大小。但是,现在我的投资回报率不再准确。我有一个工具可以告诉我鼠标位置的屏幕坐标,这就是我如何找到 ROI 的尺寸,但是我需要一个函数来转换我找到的 ROI 坐标,给定 square_1 的坐标,就坐标而言的square_resize。
编辑: 使用 Panda50 的答案解决。 grab_screen() 是我自己的用于获取屏幕截图的自定义函数。如果对任何人有帮助,这是我的代码。它不能提供 100% 准确的坐标,但您可以尝试一些并缩小范围。
from cv2 import cv2
import numpy as np
y1 = int(92 / 2)
y2 = int(491 / 2)
x1 = int(233 / 2)
x2 = int(858 / 2)
# grab screen and convert to RGB
screen = grab_screen(region = (0,1080))
screen = cv2.cvtColor(screen,cv2.COLOR_BGR2RGB)
# resize screen
screen = cv2.resize(screen,interpolation = cv2.INTER_AREA)
# define ROI
roi = screen[y1:y2,x1:x2].copy()
cv2.imshow('roi',roi)
cv2.waitKey()
cv2.destroyAllWindows()
解决方法
在 python 中,=
将一个变量与另一个相关联。通过更改 square_1
,您还将更改 roi
.
你必须使用:
roi = square_1[y1:y2,x1:x2].copy()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。