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'
答案 0 :(得分:0)
收到有关您的问题的一些描述将很有帮助。您正在尝试做什么等。出现问题时。您知道在我们帮助您之前会有所帮助:)
答案 1 :(得分:0)
cv2.Canny()
函数的输入图像数据类型错误。它必须是无符号的8位整数(OpenCV称为CV_8U
),您还有其他问题(我们无法从您的代码中看到)。
更改为cv2.Canny(gray.astype('uint8'))
,该特定问题将消失。
不过请注意,您可能要考虑图像具有的数据类型,然后在其他位置进行此转换。