【发布时间】:2014-07-04 23:22:25
【问题描述】:
我在图像上使用滑动窗口,并希望显示每个窗口“查看”的图像补丁。
我先把代码保存在这里:http://www.johnvinyard.com/blog/?p=268为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 上的错误有关?解决方法是什么?还是有其他显示图像补丁的方法?
如果我在上面的for 循环中打印出w,我确实会看到许多数组,所以我知道sliding window 部分没有问题。问题在于我是否正确转换和/或显示给定数组中的图像。
【问题讨论】:
-
纯属猜测。如果这个
io使用matplotlib 作为插件,有点。您可能必须调用一个函数来显示图形,因为这是在 matplotlib 中执行此操作的方法。io有 show 方法吗?io.show() -
同意之前的评论。如果该方法不存在,请执行
import matplotlib.pyplot as plt然后plt.show() -
刚刚试过
wi = Image.fromarray(w) io.imshow(wi) io.show(),我确实得到了一些显示。但我得到一个带有 x 和 y 轴的纯黑色矩形,就是这样。不是我正在寻找的图像补丁。 -
我删除了
Image.fromarray()并直接将数组放入,它工作。谁能解释为什么会这样?
标签: python image numpy matplotlib computer-vision