Windows 7 で Python3 を使用しています。マウスで選択した画面領域のすべてのピクセルのうち、色の濃さ、色などのすべての属性を取得したいと考えています。選択範囲はどのような形状でもかまいませんが、現在は長方形と正方形で十分です。画面の任意の領域で実行したい。
TkまたはWxを使用してPythonでそれを行う方法を教えてください(GUIツールキットを使用する必要がある場合)。?
ありがとう
私は Wx や Tk を使ったことがないので、Wx や Tk を使ってそれを行う方法がわかりません。いくつかの画像処理ライブラリを使用することをお勧めします。これにはOpenCVまたはSimpleCVを使用できます。OpenCVやSimpleCVを使えば簡単です。SimpleCV は OpenCV に基づいていますが、よりユーザーフレンドリーで操作が簡単です。
クリックしたポイントの RGB 値を取得する SimpleCV の例を次に示します。
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)
同様に、開始点をマウス クリックとして、四角形の高さと幅に指定した定義済みの値を使用して、四角形にバインドするすべてのピクセルの値を取得できます。
これは、2 点をクリックしたときに画像上に線を引くために作成したコードです。https://github.com/jayrambhia/SimpleCVexamples/blob/master/drawlines.py
ここで SimpleCV の例をさらに見つけることができます。https://github.com/ingenuitas/SimpleCV/tree/master/SimpleCV/examples
SimpleCV はコンピューター ビジョン用のライブラリであるため、すべての例が実際に役立つとは限りませんが、いくつかを見てみることができます。
まず第一に、wxPythonはまだPython3ではサポートされていません。うまくいけば、それは今年後半になります。それまでの間、選択内容をwx.Imageまたはwx.MemoryDCにブリットし、次のページに記載されている方法を使用する必要があります:http ://wxpython-users.1045709.n5.nabble.com/wxPoint-および-Bitmap-pixel-color-value-td2294179.html
基本的に、dc.GetPixelまたはimage.GetRed、image.GetGreen、image、GetBlueを呼び出します。