我正在使用float32类型的128 x 128数组。这些阵列是从二进制文件中提取的,而我试图在每个阵列中找到磁盘。

当我尝试使用HoughCircles示例代码时:

img = Image.fromarray(fa)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,param1=50,param2=30,minRadius=0,maxRadius=0)

circles = np.uint16(np.around(circles))
for i in circles[0,:]:
    # draw the outer circle
    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)

我收到以下错误:



如果我不使用Image.fromarray转换为图像,则会收到以下错误,指示我仍无法使用正确的类型。

最佳答案

Houghcircles拍摄8位单通道灰度输入图像。并且您的数组是float32类型的128 x 128数组。因此,请尝试更改类型。

为了进行健全性检查,请在此操作之前和之后显示您的图像

img = Image.fromarray(fa)

关于python - cv2.HoughCircles中的图像加载问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53766240/

10-16 12:07