複雑な処理アルゴリズムに到達するには、標準スキームを分析する価値がありますので、開始することをお勧めします。
処理の例では、さまざまな色のセットを持つ画像が使用されます。
開始するには、2つのライブラリモジュールが必要です。
from PIL import Image, ImageDraw
快適な将来の作業のためのツールをセットアップします。
image = Image.open('test.jpg')
さあ始めましょう
RGB形式の画像を処理します。 PILは、フォーマット1、L、P、RGB、RGBA、CMYK、YCbCr、LAB、HSV、I、Fの使用もサポートしています。
画像のピクセル値は次の形式で設定されます:
(x、y)、(red、green、blue) 、
x、yは座標、RGBの数値は0から255の範囲です。つまり、
8ビット画像で作業し
ます。 グレースケール
すべてのカラーパレットが等しい場合、灰色の色合いが表示されるため、3つのポイントすべてで算術平均値を取得する必要があります。
for x in range(width): for y in range(height): r = pix[x, y][0]
わずかなニュアンス人間の目は、さまざまな方法でさまざまな色のスペクトルを知覚します。 色の知覚は何らかの方法で異なるため、誰もあなたに正確な式を与えることはありませんが、興味があれば、
ここと
ここをもっと読むことができ
ます 。
反転
反転は、255から現在の色を減算することによって取得されます。
for x in range(width): for y in range(height): r = pix[x, y][0] g = pix[x, y][1] b = pix[x, y][2] draw.point((x, y), (255 - r, 255 - g, 255 - b))
グレースケール反転
前述の2つのアルゴリズムを組み合わせて、次のコードを記述できます。
for x in range(width): for y in range(height): r = pix[x, y][0] g = pix[x, y][1] b = pix[x, y][2] sr = (r + g + b) // 3 draw.point((x, y), (255 - sr, 255 - sr, 255 - sr))
選択的グレースケール反転
このアルゴリズムの場合、しきい値を決定する必要があります。これは100で使用します。
for x in range(width): for y in range(height): r = pix[x, y][0] g = pix[x, y][1] b = pix[x, y][2] if (r+g+b)>100:
おわりに
次の記事では、画像処理アルゴリズムにおける
DFSの興味深い可能性を示すだけでなく、画像フィルターを領域に分割することにより、より局所的にアプローチする方法についてお話したいと思います。