在wxPython中加载灰度图像

2024-04-19 08:06:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用wxPython编写一个小的桌面应用程序,它做一些图像处理,但是我发现它运行得相当慢。在

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

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

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

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


Tags: 数据对象方法图像目的numpy应用程序wxpython
1条回答
网友
1楼 · 发布于 2024-04-19 08:06:47

你可以像这样用皮尔打乒乓球:)

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

相关问题 更多 >