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的OpenCV中Harris角点检测与定位_Python_Opencv_Feature Detection_Corner Detection - Fatal编程技术网

基于Python的OpenCV中Harris角点检测与定位

基于Python的OpenCV中Harris角点检测与定位,python,opencv,feature-detection,corner-detection,Python,Opencv,Feature Detection,Corner Detection,我使用以下代码尝试检测多段线的角点,以便“测量”这些线。代码基于我在某处找到的一个片段,基于: 原始代码会导致拐角位置出现白点,该级别似乎是拐角度的指示器。 更新为使用cv2的代码片段对生成的图像进行迭代,并扫描大于10e-06的值。出于某种原因,我将其替换为我认为应该是图像中亮度的比较 但是,在这些位置绘制的圆与标准化harris输出中发现的实际热点相差甚远 我做错了什么 或者,可以设置为使用Harris UseSHarrisDetector=True,但我尝试使用它不会导致cornerHar

我使用以下代码尝试检测多段线的角点,以便“测量”这些线。代码基于我在某处找到的一个片段,基于:

原始代码会导致拐角位置出现白点,该级别似乎是拐角度的指示器。 更新为使用cv2的代码片段对生成的图像进行迭代,并扫描大于10e-06的值。出于某种原因,我将其替换为我认为应该是图像中亮度的比较

但是,在这些位置绘制的圆与标准化harris输出中发现的实际热点相差甚远

我做错了什么

或者,可以设置为使用Harris UseSHarrisDetector=True,但我尝试使用它不会导致cornerHarris正确检测到的结果:

cv2.goodFeaturesToTrack(  blurred,                # img
                                500,                    # maxCorners
                                0.03,                   # qualityLevel
                                10,                     # minDistance
                                None,                   # corners, 
                                None,                   # mask, 
                                2,                      # blockSize, 
                                useHarrisDetector=True, # useHarrisDetector, 
                                k=0.04                  # k
                                )

对cv2.cornerHarris的等效函数调用是什么?

输出似乎是转置的,在方形图像上交换x和y索引将确定圆位于角最大值。

输出似乎是转置的,在方形图像上交换x和y索引将确定圆位于角最大值。

请尝试以下操作:

  cv2.circle( cornershow,  # dest
              (y,x),      # pos
              4,          # radius
              (115,0,25)  # color
              )
请尝试以下内容:

  cv2.circle( cornershow,  # dest
              (y,x),      # pos
              4,          # radius
              (115,0,25)  # color
              )

请尝试添加结果图像并解释错误。请尝试添加结果图像并解释错误。为了清楚起见,in-numpy索引应该是cornerimg[y,x],还有。shape返回h,w,所以实际交换的是访问cornerimg的方式。为了清楚起见,in-numpy索引应该是cornerimg[y,x]另外,shape返回h,w,所以实际上交换的是访问cornerimg的方式。