[更新了结尾的问题] 我试图在640x480的图像中检测出简单几何图形的设计模式。我已经将图像分成32x32个块,并检查每个形状的中心位于哪个块中。在
基于这个计算,我创建了一个由(160x120)个零(float32)组成的numpy矩阵
col=640/4
row=480/4
每次找到形状时,都会计算中心并检查找到它的块。160x120 numpy数组中的对应项及其8个邻居被设置为1。最后,160x120 numpy数组被表示为一个灰度图像,黑色背景和白色像素表示检测到的形状块。在
左上角的图像表示160x120 numpy数组。到目前为止没有问题。在
如您所见,新生成的图像在黑色前景上有一条白线。我要找到这条线的ρ,θ,x0,y0,x1,y1。所以我决定使用HoughLines变换。在
如下所示:
edges = cv2.Canny(np.uint8(g_quadrants), 50, 150, apertureSize=3)
lines = cv2.HoughLines(edges, 1, np.pi / 180, 200)
print lines
这里g_quadrants
是表示灰度图像的160x120矩阵,但是cv2.HoughLines
的输出除了None
之外不包含任何内容。在
请帮我拿这个。在
更新:
黑白相间的小窗户(np.浮动32考虑灰度)显示白色的图像是我在
缩放视图:
你可以看到白色像素组成一条直线。可能是检测到一些不需要的。我需要消除不必要的孤立像素和重建一条连续的直线。这可以通过膨胀然后腐蚀图像来实现。我需要找到这条线的x0,y0,x1,y1,rho,theta。在
它们可能不止一行。在这种情况下,我需要找到关于长度的前两行。在
目前没有回答
相关问题 更多 >
编程相关推荐