我正在使用wxPython编写一个小的桌面应用程序,它可以进行一些图像处理,但我发现它的运行速度相当慢。
目前最大的问题之一是,我使用的是三通道数据(RGB),而我只需要一个灰度图像就可以满足我的目的。
目前,我正在通过将图像加载到numpy数组中来处理图像。处理完成后,它们将转换为wx图像对象(通过ImageFromBuffer()函数,然后将其加载到用户界面的StaticBitmap中。这似乎有很多步骤..。
所以我有两个问题--第一个问题是如何将numpy数组直接加载到灰度wx Image中?这有可能吗?
第二个更通用-在wxPython中处理图像的最快方法是什么?我没有太多的选择,只能遍历numpy数组(我需要数学功能),但是任何在这个过程之前和之后加速的方法都是受欢迎的!
发布于 2014-04-17 15:29:24
你可以像这样用PIL打乒乓球:)
def convertToGrayscale(img):
import Image, ImageOps
orig = Image.new("RGB", img.GetSize())
orig.fromstring(img.GetData())
pil = ImageOps.grayscale(pil)
ret = wx.EmptyImage(pil.size[0], pil.size[1])
ret.SetData(pil.convert('RGB').tostring())
return ret 请参阅此链接link
https://stackoverflow.com/questions/22897105
复制相似问题