1

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

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

谢谢

4

2 回答 2

2

我从未使用过 Wx 或 Tk,所以我不知道如何使用 Wx 或 Tk 来做到这一点。我建议您使用一些图像处理库。您可以为此使用OpenCVSimpleCV。如果您使用 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 是计算机视觉的库,您可能不会发现所有示例都真正有用,但您可以尝试查看一些

于 2012-04-29T11:46:48.290 回答
0

首先,Python 3 目前还不支持 wxPython。希望它会在今年晚些时候。同时,您可能必须将您的选择blit 到 wx.Image 或 wx.MemoryDC 并使用本页中提到的方法:http ://wxpython-users.1045709.n5.nabble.com/wxPoint-和-位图像素颜色值-td2294179.html

基本上,您调用 dc.GetPixel 或 image.GetRed、image.GetGreen、image、GetBlue。

于 2012-04-30T14:53:27.973 回答