我正在尝试调整1920X1080的大小,并将灰度复制到128X32的白色背景上。但我得到了一个错误:
Traceback (most recent call last):
File "C:/Users/bnsid/Desktop/SimpleHTR-master - Copy/src/SamplePreprocessor.py", line 39, in <module>
main()
File "C:/Users/bnsid/Desktop/SimpleHTR-master - Copy/src/SamplePreprocessor.py", line 32, in main
cv2.imshow('Greyscale_Stretched', target('float32'))
TypeError: 'numpy.ndarray' object is not callable
我的代码:
^{pr2}$我想要一个白色背景的灰度图像。在
问题出在
target('float32')
目标是努比·恩达雷,并在其后面加上()
,这样就可以像函数一样调用它了对于opencv图像,float32的范围是0.0-1.0,而uint8则在0-255的范围内
我可以看到您已经用
target = np.ones([ht, wt]) * 255
将目标转换为0-255范围,所以您应该使用'uint8'现在来解决最初的问题。将numpy数组更改为其他数据类型
target = target.astype('uint8')
或target = target.astype('float32') / 255.
(除以255返回0-1.0范围)或者您可以使用它而不存储新类型
cv2.imshow('Greyscale_Stretched', target.astype('uint8'))
通常,当您试图从numpy调用某个东西时,这个问题会发生,因为它是
function()
,而不是type[]
。如需参考,请参阅此处接受的注释why numpy.ndarray is object is not callable in my simple for python loop要解决此问题,请尝试将第32行的一些括号改为方括号,因为括号用于函数,方括号用于数据类型。我想其中一个组合会奏效,但我可能还是错了。在
cv2.imshow('Greyscale_Stretched', target['float32'])
cv2.imshow['Greyscale_Stretched', target('float32')]
cv2.imshow['Greyscale_Stretched', target['float32']]
希望有帮助。在
相关问题 更多 >
编程相关推荐