问题描述
使用 imageio.imread
而不是 scipy.misc.imread
(因为它已折旧)给我带来了问题。我想执行这样的操作,但使用 imageio
:
for file_indexes in duplicates[:30]:
try:
plt.subplot(121),plt.imshow(imread(files_list[file_indexes[1]]))
plt.title(file_indexes[1]),plt.xticks([]),plt.yticks([])
当我尝试以下操作时出现错误
File "<ipython-input-18-2b05f47215d7>",line 4
plt.subplot(121),img = imageio.imread(files_list[file_indexes[1]])
^
SyntaxError: can't assign to function call
这就是我尝试过的:
for file_indexes in duplicates[:30]:
try:
plt.subplot(121),img = imageio.imread((files_list[file_indexes[1]]))
plt.title(file_indexes[1]),plt.yticks([])
一般来说,我想将以下 code 中的 scipy.misc.imread
替换为 imageio.imread
:
for file_indexes in duplicates[:30]:
try:
plt.subplot(121),plt.imshow(imread(files_list[file_indexes[1]]))
plt.title(file_indexes[1]),plt.yticks([])
plt.subplot(122),plt.imshow(imread(files_list[file_indexes[0]]))
plt.title(str(file_indexes[0]) + ' duplicate'),plt.yticks([])
plt.show()
except OSError as e:
continue
使用正确语法的正确方法是什么?
解决方法
初始错误位于此处:
plt.subplot(121),img = imageio.imread((files_list[file_indexes[1]]))
之前没有赋值,只有一个简单的语句:plt.imshow(...)
。现在,有一个赋值,这在简单语句列表中是不允许的。要解决此问题,您只需要移动
img = imageio.imread(...)
到单独的一行。
但是,由于您只想从已弃用的 scipy.misc.imread
切换到 imageio.imread
,只需替换
plt.imshow(imread(...))
与
plt.imshow(imageio.imread(...))