我想实现图像处理,但它显示了一些错误

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: error: (-215:Assertion failed) _src.depth() == CV_8U在函数'cv :: Canny'中


狐的传说
浏览 339回答 2
2回答

倚天杖

收到您的问题的一些描述会很有帮助。您正在尝试做什么等。当问题发生时。你知道在我们帮助你之前帮助我们一点点:)

红糖糍粑

函数的输入图像cv2.Canny()具有错误的数据类型。它需要是无符号的 8 位整数(OpenCV 调用的CV_8U),并且您还有其他内容(我们无法从您的代码中看到)。更改为cv2.Canny(gray.astype('uint8')),该特定问题应该消失。但请注意,您可能需要考虑图像的数据类型,并在其他地方进行此转换。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python