Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在图片中找到矩形板的角_Python_Opencv_Image Processing_Corner Detection - Fatal编程技术网

Python 在图片中找到矩形板的角

Python 在图片中找到矩形板的角,python,opencv,image-processing,corner-detection,Python,Opencv,Image Processing,Corner Detection,我需要使用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.IMREA

我需要使用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)
然后看起来是这样的:

现在我正试图找到盘子的角落,但我不知道如何才能做到这一点。这些角可以是内矩形的角,也可以是外矩形的角。我用油漆编辑了下面的图片,以显示我指的是哪个角落


你能帮我写一个脚本来找到这个盘子的角坐标吗?

这是一个不容易的任务,尤其是对于上面的两个下角。对比度低(甚至在某些地方不存在),图像杂乱无章

凸面外壳确实会为您提供两个顶角(前提是螺钉始终可以检测到)。也可以通过在凸面外壳中查找有效角度来查找下表面的底角

您可以大致了解上表面角的位置,了解板的厚度及其投影高度与真实高度的比较


当长边检测不到的时候,你可以考虑长的、连续的线段(在8连通性意义下),并尝试将它们与凸包和估计的角相匹配。

最后检测到的角点图像是你想要的图像吗?你是怎么画这些圆的?我想要的图像不一定要像上面画的那样。我只想把角点的坐标存储在变量中。我用油漆做了这个图像来显示我指的是哪个角。我认为可以通过计算所有边缘像素周围的凸包来找到上面的外角。如果对象很薄,则较低的外角也同样适用。内角将更难提取。可以尝试EDLines或LSD,看它们是否能为该任务提供更好的边缘效果。是否允许您以任何方式修改板?在角落或其他地方贴上标记,以便更容易发现?