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
正确检测图像opencv python中的角点_Python_Opencv_Image Processing_3d - Fatal编程技术网

正确检测图像opencv python中的角点

正确检测图像opencv python中的角点,python,opencv,image-processing,3d,Python,Opencv,Image Processing,3d,我有下面的图像,从中我用下面的代码检测角点 import cv2 img = cv2.imread('image.jpg',cv2.IMREAD_COLOR) gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) bilateral = cv2.bilateralFilter(gray, 9, 75, 75) canny = cv2.Canny(bilateral, 50, 150) corners = cv2.goodFeaturesToTrac

我有下面的图像,从中我用下面的代码检测角点

import cv2

img = cv2.imread('image.jpg',cv2.IMREAD_COLOR)

gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
bilateral = cv2.bilateralFilter(gray, 9, 75, 75)
canny = cv2.Canny(bilateral, 50, 150)

corners    = cv2.goodFeaturesToTrack(canny,15,0.06,25)

for i in range(len(corners)):
    cv2.circle(img, (corners[i][0][0], corners[i][0][1]), 5, 255, -1)

cv2.imshow('dilated', img)
cv2.waitKey(0)


并不是所有的角都被正确地确定,这就是我希望黑色的角应该和盒子的角一样被确定。幸运的是,在这种情况下,框角是确定的,但并非所有的黑色角都是确定的。我怎样才能改善这个结果,甚至改变获得正确转角的方法。Harris corners不是这种方法的一个好解决方案,因为我需要一个单点作为角点,但Harris corners方法返回许多接近点作为角点的候选点。提前感谢您的建议

是聚焦于检测长方体角点还是长方体+黑色角点?实际上两者都是。黑色角点是参考角点,长方体角点是主要对象角点。不清楚您聚焦的是哪个角点。您是否知道要检测什么,黑色角点还是长方体角点(包括3个黑色角点)。因为有很多方法可以找到物体的轮廓。作为你的物体,一个盒子,应该很容易找到这些轮廓并提取角点。请提供原始图像,这样你就可以用它进行实验。