【发布时间】:2018-03-02 23:00:30
【问题描述】:
我想在 Python 中查看图片中箭头指向的方向。在以下算法中,我计算了箭头的重心:
image = cv2.imread(image.tiff")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
thresh = cv2.threshold(blurred, 60, 255, cv2.THRESH_BINARY)[1]
cnts = cv2.findContours(thresh.copy(), cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if imutils.is_cv2() else cnts[1]
for c in cnts:
M = cv2.moments(c)
cX = int(M["m10"] / M["m00"]) # center of gravity (x coordinate)
cY = int(M["m01"] / M["m00"]) # center of gravity (y coordinate)
是否有另一种方法可以确定箭头的中心点,以便使用中心点和重心之间的差值来计算箭头指向的方向?
【问题讨论】:
-
您不能尝试在此数据上绘制趋势线吗? (例如,将 2d 图像转换为 1d 图像,其中位置(和值)以适当的方式使用。这里的乐趣在于您可以弄清楚如何以“最佳”方式执行此操作)。因为那时这条趋势线的斜率已经有了你的答案。
-
@GPPK:问题是箭头看起来并不总是那么干净。
-
@zwep:你能详细说明一下吗?我还不打算进入它。是否也可以从极值点计算箭头的中心? (在这里完成:pyimagesearch.com/2016/04/11/…)
-
@freddykrueger 我的回答对您有帮助吗?还是您找到了不同的解决方案?
标签: python opencv direction opencv-contour