在Python中显示图像块

2 投票
1 回答
2762 浏览
提问于 2025-04-18 06:45

我正在对我的图像使用滑动窗口,想要显示每个窗口“看到”的图像区域。

我首先把这里的代码保存为 sliding_window.py,然后把它导入到我的代码中:

from itertools import izip
import numpy as np
import sliding_window as sw
from skimage.viewer import ImageViewer
from skimage import data, io, filter, color, exposure
from PIL import Image        
from scipy.misc import toimage

io.use_plugin('matplotlib')

image1 = color.rgb2gray(io.imread("PATH_TO_MY_IMAGE\\akaria1.jpg"))
window_size = (100,100)
windows = sw.sliding_window(image1, window_size)

# make an image out of these of these sliding window thingies
for w in windows:
        wi = Image.fromarray(w)
        io.imshow(wi)

但是没有图像显示出来。也没有错误提示。程序似乎在运行,但什么都没做。我听说这可能和Windows上的一个bug有关?有什么解决办法吗?或者有没有其他方法可以显示这些图像区域?

如果我在上面的 for 循环中打印出 w,我确实能看到一些数组,所以我知道在 sliding window 的部分没有问题。问题在于我是否正确地转换和显示了这些数组中的图像。

1 个回答

0

我找到了问题所在。看起来我并不需要坚持要从滑动窗口生成的数组创建一个图像。直接把它们当作图像来处理就足够了。

for w in windows:
        pl.imshow(w) #no need to use Image.fromarray()
        pl.show()

撰写回答