不能对numpy数组imag使用SIFT

2024-10-06 11:27:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我打开脑部核磁共振扫描:

path = os.path.join(r"C:\temp\generated_noisy\patients", 
lst_of_filenames[index_of_filename])
scan = nib.load(path)
data = scan.get_data()
data = data[14:168,18:205,98]

所以现在“data”是一个numpy数组(其中的元素是数字浮点数64“):

^{pr2}$

好吧,现在我试着用SIFT: kp,des=筛选检测和计算(图,无)

我得到一个错误:

^{3}$

有人知道怎么解决这个问题吗?我好像在网上找不到任何帮助。。。在


Tags: ofpathdataindexscanosfilenametemp
1条回答
网友
1楼 · 发布于 2024-10-06 11:27:10

SIFT期望数据类型为uint8。但是,如果值不在正确的范围内,例如大于255或在0-1范围内,则无法将数组转换为uint8。在转换之前,可以缩放这些值,使值在0-255范围内。例如,下面将减去最小值,使最小值为零,然后缩放以使最大值为255。然后可以转换为uint8类型,而不会损坏图像。在

data = (data - np.min(data)) * 255 / np.max(data)
data = data.astype(np.uint8)

相关问题 更多 >