今回は、PythonのPILを使って、画像にマイナス変換を行う方法を紹介します。
PILとは、Python Imaging Libraryの略称です。
このライブラリは、複数の画像変換のために使用されます。
PILを使うと、画像を扱うのが超簡単になり、何行もコードを書かずに画像のさまざまな部分を編集できるようになります。
モジュールのインポート
この目的のために、PILのImageクラスを使用することにしましょう。
その結果、スクリプトの最初の行は次のようになります。
from PIL import Image
|
Imageクラスは、今回は多くのプロパティとメソッドで構成されています。
画像を開く、画像を見る、与えられた画像からピクセルを取り出す、画像内のピクセルを変更するためには、open, show, getpixel, putpixel メソッドが必要です。
では、画像を開くにはどうすればよいのでしょうか。
以下のようにすれば可能です。
1
2
3
4
5
|
from PIL import Image
import matplotlib.pyplot as plt
img = Image. open ( "fig.jpg" )
plt.axis( 'off' )
plt.imshow(img) |
画像の読み込み
ここで、imgは供給されたイメージのImage Objectで、Imageのパスで見つけることができます。
” Imageの色のネガティブ変換について見てみましょう。
1
2
3
4
5
6
7
8
9
10
|
w,h = img.size
for i in range (w):
for j in range (h):
r,g,b = img.getpixel((i,j))
r = 255 - r
g = 255 - g
b = 255 - b
img.putpixel((i,j),(r,g,b))
plt.axis( 'off' )
plt.imshow(img) |
ご存知のように、RGBカラーモデルでは、各色は0〜255の10進数のインデックスを持っています。
0が最も低く、255が最も高いことを表しています。
例えば、(255,255,255)は白を表す。
同様に、(0,0,0)は黒を表す。
色のネガティブ変換とは、以下のように色を反転させることを意味します。
色Xを(r,g,b)=(100,100,100)と表すとします。
これは次のように変換されます。
R=255-r =255-100=155 => R=155
同様に、G=155, B=155
したがって、Xの負変換色指標は、(R,G,B) =(155,155,155) となる。
画像のネガティブ変換を実装する
それでは、画像の各ピクセルに対して、色の負の変換を実装してみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
from PIL import Image
import matplotlib.pyplot as plt
img = Image. open ( "fig.jpg" )
w,h = img.size
for i in range (w):
for j in range (h):
r,g,b = img.getpixel((i,j))
r = 255 - r
g = 255 - g
b = 255 - b
img.putpixel((i,j),(r,g,b))
plt.axis( 'off' )
plt.imshow(img) |
Pythonによる画像のネガティブ変換のコード
まとめ
画像のネガティブ変換を行う方法を学びました。
このチュートリアルは気に入りましたか?いずれにせよ、以下のチュートリアルをご覧になることをお勧めします。
- Python Patchify – 大きな画像からパッチを抽出する
- Pythonで衣服の画像を分類する – 完全ガイド
- Pythonで画像のノイズ除去 – ステップバイステップガイド
- ヒストグラムを使った画像の色の可視化 – Python OpenCV
お時間を割いていただきありがとうございました! 何か新しいことを学べたでしょうか!