2024-09-29 17:19:26 发布
网友
如何找到离图像中心最近的正方形?在
我已经有了正方形的顶点和中心,只需要找出哪个正方形离中心最近。在
我有一个类似于这张图片的问题。我想选最近的广场(红场)。在
两种可能性,其中一种在你的答案中提到,而comment by @miki
您不需要实现自己的距离函数。西皮已经有一些了。例如,scipy.spatial.distance.euclidean中的欧几里德距离:
scipy.spatial.distance.euclidean
from scipy.spatial import distance distance.euclidean((x0, y0), (x1, y1))
不需要重新发明轮子。在
在下面的例子中,可以讨论红色方块还是蓝色方块更靠近中心。根据欧几里得距离,它是蓝色的。不过,红色的是和中心重叠的。在
如果你想要一个离中心最近像素的正方形,你可以做如下的事情
你可以把它分开:
这里的要点可能是其中的任何一个(可能除了1.2)。在
有一个整洁的OpenCV Python tutorial,它告诉你如何做一些。让我们开始:
import cv2 img = cv2.imread('L3h9H.png')
导入图像。在
要确保导入正确,可以使用
from matplotlib import pyplot as plt plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis plt.show()
你就知道了。在
import numpy as np gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) gray = np.float32(gray) dst = cv2.cornerHarris(gray, 2,3,0.04) for i, valx in enumerate(dst): for j, valy in enumerate(valx): if valy > 0: print '%s, %s: %s' % (i, j, valy)
使用一种内置算法查找角点。后面列出拐角。在
下一步将是:
如果你需要更多的帮助就说。在
这就是我解决问题的办法。其中x0和y0可以是图像中心的坐标,x1和y1是正方形中心的坐标中心。在
import math def dist(x0, y0, x1, y1): a = (x1 - x0)**2 + (y1 - y0)**2 b = math.sqrt(a) return b print dist(5, 5, 4, 6) print dist(5, 5, 9, 2)
两种可能性,其中一种在你的答案中提到,而comment by @miki
您不需要实现自己的距离函数。西皮已经有一些了。例如,
scipy.spatial.distance.euclidean
中的欧几里德距离:不需要重新发明轮子。在
在下面的例子中,可以讨论红色方块还是蓝色方块更靠近中心。根据欧几里得距离,它是蓝色的。不过,红色的是和中心重叠的。在
如果你想要一个离中心最近像素的正方形,你可以做如下的事情
^{pr2}$编辑问题前的原始答案
你可以把它分开:
这里的要点可能是其中的任何一个(可能除了1.2)。在
有一个整洁的OpenCV Python tutorial,它告诉你如何做一些。让我们开始:
导入
导入图像。在
要确保导入正确,可以使用
你就知道了。在
find corners
使用一种内置算法查找角点。后面列出拐角。在
下一步将是:
如果你需要更多的帮助就说。在
这就是我解决问题的办法。其中x0和y0可以是图像中心的坐标,x1和y1是正方形中心的坐标中心。在
相关问题 更多 >
编程相关推荐