2011-05-28 11 views
2

私は、カラー画像をカラーネガに変換する方法を理解しようとしていて、何時間もPythonを手伝ってきました。Python:RGB画像のネガティブイメージを作成する

私はPILとImageをPILからインポートしました。画像を無効にするために(255.0 - 赤、255.0 - 緑、255.0 - 青)と同様の処理をする必要があることを知っていますしかし、私はそれを私の 'for'ループに組み込む方法を理解することができないようです。

私はまったく本当にパイソンの良いことではないよ、と任意のヘルプは本当にありがとう、事前に

=/

いただければ幸いです:)

+0

さらに、あなたが書いた関連コードをすべて表示してください。 – mtrw

答えて

1
for r,row in enumerate(myPicture): 
    for c,value in enumerate(row): 
     myPicture[r][c] = invert(value) 
6
inverted = Image.eval(original, lambda(x):255-x) 
4

私はないんだけど、自分自身、PILユーザーであるが、the documentationのクイック検索はinvertの機能を示した。

ImageOps.invert(image) => image 
    Invert (negate) the image. 

おそらくそれはあなたが探しているものですか?

+0

invert関数を使用せずにそれを行う方法があるのか​​どうか疑問に思っていました。実際の値そのものと同じですか? – s2Serenitys2

+0

おそらく 'im.tostring'と' im.fromstring'を調べる必要があります。これはまた、Pythonの 'struct'モジュールを知る必要があります。 – mtrw

1

私はこのスレッドがかなり古くなっていることを認識していますが、私は旅行でこれを見つけて、それが関係していると思っていました。

def invert(): 
    picture=makePicture("C:/somepic.png") 
    for px in getPixels(picture): 
     r=getRed(px) 
     g=getGreen(px) 
     b=getBlue(px) 
     newColour=makeColor(255-r,255-g,255-b) 
     setColor(px,newColour) 
    repaint(picture) 
+0

特定のパッケージをインポートする必要がありますか? 'makePicture'は標準のPythonの一部ではないようです。 –

+1

ああもちろん、それは私の悪いです。ルーキーエラー。私は、JESでJythonを学んでいます。これには、いくつかのファンキーな余分なビットとピースが含まれている必要があります。 – CSternsdorf

関連する問題