【发布时间】:2019-01-28 02:57:49
【问题描述】:
我正在阅读此post 以使用OpenCV 计算图像的中心,而Moments 使用Moments。但我正在尝试计算使用 HoughLinesP 检测到的对象的中心。 OpenCV 有没有办法让我做到这一点?
这是我要为其计算中心的图像。
找到线段,输出图像如下:
import cv2
import numpy as np
import math
img = cv2.imread("./images/octa.jpg")
b,g,r = cv2.split(img)
smoothed = cv2.GaussianBlur(g, (3,3), 0)
edges = cv2.Canny(smoothed, 15, 60, apertureSize = 3)
lines = cv2.HoughLinesP(edges,1,np.pi/180,35, 30, 20)
print("length of lines detected ", lines.shape)
for line in lines:
for x1,y1,x2,y2 in line:
cv2.line(img,(x1,y1),(x2,y2),(255,0,0),2)
print("x1,y1", x1,",",y1, " --- ", "x2,y2", x2,",",y2)
cv2.imshow('detected',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
如何使用坐标计算此图像的中心?我怎么能在这里使用Moments?
我的一个限制是我不能使用 OpenCV 中包含的 Contour 方法。
【问题讨论】:
-
对于特定的图像,裁剪它并只计算质心会更容易,例如使用 scipy。你真的需要从线条中计算出来吗?
-
@user8408080 是的,由于某种原因不能使用 opencv 的轮廓方法。你能告诉我怎么做吗?
-
@user8408080 有什么想法吗?
-
我目前在手机上,所以我现在无法测试任何东西,但我会在我的电脑上尝试一下
-
这是唯一需要计算中心的图像吗?还是它们都属于同一类型?
标签: python opencv computer-vision hough-transform