我想执行图像处理,但显示出一些错误

时间:2019-10-04 07:07:05

标签: python

if not len(blurred.shape) == 2:
                gray = cv2.cvtColor(blurred, cv2.COLOR_RGB2GRAY)
            else:
                gray = blurred
            edge = cv2.Canny(gray, 50, 150)  

        circles = AHTforCircles(edge,center_threhold_factor=params[i]['center_threhold_factor'],score_threhold=params[i]['score_threhold'],min_center_dist=params[i]['min_center_dist'],minRad=params[i]['minRad'],
                                maxRad=params[i]['maxRad'],center_axis_scale=params[i]['center_axis_scale'],radius_scale=params[i]['radius_scale'],
                                halfWindow=params[i]['halfWindow'],max_circle_num=params[i]['max_circle_num'])
        final_img = drawCircles(circles,blurred)

        plt.imshow(final_img)
        plt.axis('off')
        plt.show()


edge = cv2.Canny(gray, 50, 150)   
  

cv2.error:OpenCV(4.1.1)   C:\ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ canny.cpp:829:   错误:(-215:声明失败)_src.depth()==函数中的CV_8U   'cv :: Canny'

2 个答案:

答案 0 :(得分:0)

收到有关您的问题的一些描述将很有帮助。您正在尝试做什么等。出现问题时。您知道在我们帮助您之前会有所帮助:)

答案 1 :(得分:0)

cv2.Canny()函数的输入图像数据类型错误。它必须是无符号的8位整数(OpenCV称为CV_8U),您还有其他问题(我们无法从您的代码中看到)。

更改为cv2.Canny(gray.astype('uint8')),该特定问题将消失。

不过请注意,您可能要考虑图像具有的数据类型,然后在其他位置进行此转换。