在wxPython中加载灰度图像
我正在用wxPython编写一个小的桌面应用程序,它可以进行一些图像处理,但我发现它运行得相当慢 目前最大的问题之一是,我使用的是三个通道的RGB数据,我只需要一个通道,灰度图像就可以满足我的需要 目前,我正在通过将图像加载到numpy数组来处理它们。处理完成后,通过ImageFromBuffer函数将它们转换为wx图像对象,然后将其加载到用户界面的静态位图中。这似乎需要很多步骤 所以我有两个问题-第一个问题是如何将numpy数组直接加载到灰度wx图像中?这可能吗在wxPython中加载灰度图像,python,image,wxpython,Python,Image,Wxpython,我正在用wxPython编写一个小的桌面应用程序,它可以进行一些图像处理,但我发现它运行得相当慢 目前最大的问题之一是,我使用的是三个通道的RGB数据,我只需要一个通道,灰度图像就可以满足我的需要 目前,我正在通过将图像加载到numpy数组来处理它们。处理完成后,通过ImageFromBuffer函数将它们转换为wx图像对象,然后将其加载到用户界面的静态位图中。这似乎需要很多步骤 所以我有两个问题-第一个问题是如何将numpy数组直接加载到灰度wx图像中?这可能吗 第二个更一般——在wxPyth
第二个更一般——在wxPython中处理图像的最快方法是什么?我没有太多的选择,只能在numpy数组上循环,我需要数学功能,但是在这个过程前后任何加速的方法都是受欢迎的 你可以用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
请参阅此链接