在Python中显示图像块
我正在对我的图像使用滑动窗口,想要显示每个窗口“看到”的图像区域。
我首先把这里的代码保存为 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()