gpt4 book ai didi

python - 在 python 中提取 OpenCV 的 Canny 边缘检测的有序 xy 坐标

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:43 25 4
gpt4 key购买 nike

我有一个类似 this 的多边形我想获得此多边形边界的 xy 坐标。

因此我尝试了 OpenCV 的 Canny 边缘检测并像这样提取坐标:

>>> edge = cv2.Canny(region, 100, 200)
>>> ans = []
>>> for y in range(0, edge.shape[0]):
>>> for x in range(0, edge.shape[1]):
if edge[y, x] != 0:
ans = ans + [[x, y]]
>>> print ans

问题是,我想按顺序提取坐标,就像它们排列在 this picture 的边界中一样。可能会解释。

由于我的多边形很复杂,凸包不起作用,而且由于我从 cv2.edge() 获得的边缘点数量众多,我需要使用快速算法。

最佳答案

我不确定变量赋值是否有意(y 赋值给 x 轴,反之亦然),但这里我用来获取特定坐标:

import cv2
import numpy as np

img = cv2.imread('1.JPG')
edges = cv2.Canny(img,100,200)
ans = []
highestY = 0
highestX = 0
highestCoordinate = [0, 0]

for x in range(0, edges.shape[0]):
for y in range(0, edges.shape[1]):
if edges[x, y] != 0:
ans = ans + [[x, y]]
if highestX < x:
highestX = x
if highestY < y:
highestY = y
highestCoordinate = [x, y]

print(f"Highest y is {highestY}")
print(f"Highest x is {highestX}")
print(f"Highest coordinate is {highestCoordinate}")

关于python - 在 python 中提取 OpenCV 的 Canny 边缘检测的有序 xy 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com