【问题标题】:Display image patches in python在 python 中显示图像补丁
【发布时间】:2014-07-04 23:22:25
【问题描述】:

我在图像上使用滑动窗口,并希望显示每个窗口“查看”的图像补丁。

我先把代码保存在这里:http://www.johnvinyard.com/blog/?p=268sliding_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


【解决方案1】:

我已经找到了问题所在。 看起来我不需要坚持从滑动窗口生成的数组中创建图像。像对待图像一样对待它们就足够了。

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

【讨论】:

    猜你喜欢
    • 2012-05-10
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    相关资源
    最近更新 更多