使用Tk或Wx在Python中获取像素属性?

时间:2012-04-28 14:23:43

标签: python wxpython pixel tk

我在Windows 7上使用Python3。我想获取所有属性,如颜色强度,颜色等。我用鼠标选择的屏幕区域的所有像素。选择可以是任何形状,但现在矩形和方形都可以。我想在屏幕的任何区域都这样做。

你们可以指导我如何使用Tk或Wx在Python中做到这一点(如果我必须使用一些GUI工具包)。 ?

由于

2 个答案:

答案 0 :(得分:2)

我从未使用过Wx或Tk,所以我不知道如何使用Wx或Tk。我建议您使用一些图像处理库。您可以使用 OpenCV SimpleCV 。如果您使用OpenCV或SimpleCV,这将非常容易。 SimpleCV基于OpenCV,但它更加用户友好且易于使用。

这是一个SimpleCV示例,用于获取单击

的点的RGB值
from SimpleCV import *

def imagetest():
    i = Image("lenna")
    disp = Display()
    i.show()

    while disp.isnotDone():
        if disp.mouseLeft:  # mouse left click
            print i.getPixel(disp.mouseX, disp.mouseY)

类似地,您可以获取矩形中绑定的所有像素的值,其中起点为鼠标单击和为矩形的高度和宽度提供的预定义值。

这是我在点击两个点时在图像上创建一条线的代码。 https://github.com/jayrambhia/SimpleCVexamples/blob/master/drawlines.py

您可以在此处找到更多SimpleCV示例。 https://github.com/ingenuitas/SimpleCV/tree/master/SimpleCV/examples

由于SimpleCV是计算机视觉的库,您可能不会发现所有示例都非常有用,但您可以尝试查看一些

答案 1 :(得分:0)

首先,到目前为止,Python 3还不支持wxPython。希望它会在今年晚些时候。与此同时,您可能不得不将选择blit到wx.Image或wx.MemoryDC并使用此页面中提到的方法:http://wxpython-users.1045709.n5.nabble.com/wxPoint-and-Bitmap-pixel-color-value-td2294179.html

基本上,你可以调用dc.GetPixel或image.GetRed,image.GetGreen,image,GetBlue。