【发布时间】:2021-02-12 23:13:44
【问题描述】:
我需要使用 Python 和 OpenCv 找到图片中矩形板的角的坐标。
原图是这样的:
import cv2
import numpy as np
import matplotlib.pyplot as plt
image_original = cv2.imread('c:/python_test/camera_pics/Basler_acA640-300gm__22354308__20210211_135725420_36.tiff', cv2.IMREAD_COLOR)
image_gray = cv2.cvtColor(image_original, cv2.COLOR_BGR2GRAY)
filtered_image = cv2.Canny(image_gray, threshold1=20, threshold2=200)
cv2.imwrite('c:/python_test/test.bmp',filtered_image)
然后它看起来像这样:
现在我正试图找到盘子的角落,但我不知道该怎么做。这些角可以是内部矩形或外部矩形的角。我在 Paint 中编辑了下面的图片以显示我的意思。
你能帮我写一个脚本来找到这个盘子角落的坐标吗?
【问题讨论】:
-
最后检测到的角的图像是您想要的图像?你是怎么画这些圆圈的?
-
我想要的想要的图像不必看起来像这样,上面有图纸。我只想将角的坐标存储在变量中。我在 Paint 中制作了这张图片以显示我的意思。
-
我认为可以通过计算所有边缘像素周围的凸包来找到上外角。如果物体很薄,同样适用于较低的外角。内角将更加难以提取。可以尝试 EDLines 或 LSD,无论它们是否为该任务提供更好的边缘结果。
-
您可以以任何方式修改盘子吗?在拐角处粘贴标记或其他东西以便更容易检测到?
标签: python opencv image-processing corner-detection