在wxPython中加载灰度图像

时间:2014-04-06 17:00:50

标签: python image wxpython

我正在使用wxPython编写一个小桌面应用程序,它可以进行一些图像操作,但我发现它的运行速度相当慢。

目前最大的问题之一是我使用三个数据通道(RGB),我只需要一个 - 灰度图像可以用于我的目的。

目前我正在通过将图像加载到numpy数组中来操作图像。处理完成后,它们将被转换为wx Image对象(通过ImageFromBuffer()函数,然后将其加载到用户界面的StaticBitmap。这看起来像很多步骤..

所以我有两个问题 - 第一个是如何将numpy数组直接加载到灰度wx图像中?这甚至可能吗?

第二个更通用 - 在wxPython中处理图像的最快方法是什么?我没有太多选择,只能循环使用numpy数组(我需要数学功能),但是欢迎任何在此过程之前和之后加快速度的方法!

1 个答案:

答案 0 :(得分:0)

你可以用这样的OIL打乒乓球:)

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