Python Can';找不到图像的右角
我需要找到盒子前面的四个角Python Can';找不到图像的右角,python,visual-studio,image-processing,Python,Visual Studio,Image Processing,我需要找到盒子前面的四个角 我试着输入不同的变量(角数、质量等级等),但它只找到了一个正确的角 以下是我目前的代码: 这是输出: 拐角检测器不工作。他们从不工作 在N、NE、SE和S方向寻找最远的非黑点。使用其他图像处理技术更容易找到角点。由于您的图像充满了细节,我们可以使用阈值、腐蚀和膨胀。请看下面: color = cv2.imread('box.png') plt.imshow(color); plt.xticks([]); plt.yticks([]); 您可以使用
拐角检测器不工作。他们从不工作
在N、NE、SE和S方向寻找最远的非黑点。使用其他图像处理技术更容易找到角点。由于您的图像充满了细节,我们可以使用阈值、腐蚀和膨胀。请看下面:
color = cv2.imread('box.png')
plt.imshow(color);
plt.xticks([]);
plt.yticks([]);
您可以使用所有值来获得不同的结果。如果更改透视图,可能需要稍微更改代码。查找harris角点检测器方法,请参见此处。请不要使用代码的图像,始终将其作为具有正确格式的文本插入。
gray = cv2.imread('box.png',0)
gray[gray > 10 ] = 255
plt.imshow(gray,cmap='gray');
plt.xticks([]);
plt.yticks([]);
kernel = np.ones((5,5),np.uint8)
gray = cv2.dilate(gray,kernel,iterations = 10)
gray = cv2.erode(gray,kernel,iterations=15)
gray = cv2.dilate(gray,kernel,iterations = 3)
plt.imshow(gray,cmap='gray');
plt.xticks([]);
plt.yticks([]);
y,x = np.where(gray == 255)
y_index = np.argmin(y)
x_coord = x[y_index]
gray[0:,0:x_coord] = 0
plt.imshow(gray,cmap='gray');
plt.xticks([]);
plt.yticks([]);
# Top-left
top_left = (x_coord,y[y_index])
cv2.circle(color,top_left,5,[0,255,0],-1);
# Bottom-left
y,x = np.where(gray == 255)
y_index = np.argmax(y)
x_coord = x[y_index]
bottom_left = (x_coord,y[y_index])
cv2.circle(color,bottom_left,5,[0,255,0],-1);
# Top-right
y,x = np.where(gray == 255)
x_index = np.argmax(x)
y_coord = y[x_index]
top_right = (x[x_index],y_coord)
cv2.circle(color,top_right,5,[0,255,0],-1);
# Bottom-right
for y in range(top_right[1],gray.shape[0],1):
roi = gray[y:y+1,top_right[0]-11:top_right[0]]
if np.all((roi == 0)):
break
bottom_right = (top_right[0],y)
cv2.circle(color,bottom_right,5,[0,255,0],-1);
plt.imshow(color);
plt.xticks([]);
plt.yticks([]);