PythonのPIL画像処理

イメージ・モジュール

PythonのPIL画像処理モジュール内の共通内の画像モジュール。このような、オープン、保存、CONVER、ショー...およびその他の機能として、
(画像オープン)オープン(ファイル名、モード)。

from PIL import Image
im = Inage.open("./static/gikki.jpg")
im.show()

画像表示アプリケーションを運ぶ途中勝利勝利環境下im.show。開いて、与えられた画像ファイルを確認してください。これは、遅延操作であり、それはデータを処理しようとするまで、関数は、ファイルヘッダを読み、実際の画像データであろう(コールload()メソッドは、画像データをロードすることを余儀なくされるであろう)は、ファイルから読み込まれます。変数モードが設定されている場合、それは「R」でなければなりません。ユーザーは、文字列(ファイル名を表す文字列)を使用するか、またはファイル変数のファイルオブジェクトとしてすることができます。ファイルオブジェクトは読み取り()、シーク()と()メソッドを伝えるとバイナリモードを実装する必要があります。

保存クラス

from PIL import Image
im = image.open("./static/gikki.jpg")
print(im)
# 保存为png
im.save("./static/gikki.png")
print(im.format,im.size,im.mode)

Formクラス

from PIL import Image
im = image.open("./static/gikki.jpg")
print(im.format) # 打印出格式信息
im.show()

モードクラス

モード 説明
1 黒と白、8ビット画素メモリに画素
L 黒と白の8つの画素、
P 他のパターンを使用する8ビットのピクセル、パレットマッピング
RGB 3×8ビットピクセル、トゥルーカラー
RGBA 4×8ビットピクセル、トゥルーカラー - プラス - クリアチャネル
CMYK 4×8ビット画素、色分離
YCbCr表 3×8ビットピクセル、カラービデオフォーマット
32ビット整数ピクセル
F 32ビット浮動小数点ピクセル
from PIL import Image
im = image.open("./static/gikki.jpg")
print(im.mode) ## 打印出模式信息
im.show()
e^{i\pi} + 1 = 0

クラスを変換します

現在の画像が別のモードに変換され、新しいイメージが返されます。パレット画像から変換するときに、この方法によるピクセルは、このパレットを変換します。モード変数が割り当てられていない場合、画像は、すべての情報であると表現することができるように、この方法は、パレットの非存在下で、パレットのモードを選択します。場合モノクロ画像にカラー画像、PILライブラリITU-R601-2輝度変換式:
L * = R&LT 1000分の299 + G * + B * 1000分の114 1000分の587
二つの画像に変換(モード「1」の場合)、ソース画像は、最初のモノクロ画像に変換されます。結果データは、他の黒色に設定されている、白に設定されている127より大きい値、この画像は、ジッタであろう。別の閾値は、閾値127を変更した場合、本方法は、()ポイントを使用することができます。画像ジッタを除去するために、ディザオプションを使用することができます

from PIL import Image
im = Image.open("E:\mywife.jpg")
new_im = im.convert('P')
print(new_im.mode)
new_im.show()

サイズクラス

画像のサイズは、画素数、その戻り値のタプルの幅と高さ(幅、高さ)に応じて算出されます。

from PIL import Image
im = Image.open("E:\mywife.jpg")
print(im.size) ## 打印出尺寸信息
im.show()

サムネイルクラス

画像の動作長さと幅

from PIL import Image
im = Image.open("E:\mywife.jpg")
w, h = im.size
print('Original image size: %sx%s' % (w, h))
im.thumbnail((w//2, h//2))
im.save('thumbnail.jpg', 'jpeg')

パレットカテゴリ

カラーパレットテーブル。画像モードが「P」である場合は、ImagePaletteクラスのインスタンスが返され、そうでない場合は、Noneになります。
パレット用の非画像情報「P」モードにおいて以下に示されています。

from PIL import Image
im = Image.open("E:\mywife.jpg")
print(im.palette)

新しいクラス

新しい画像を生成する可変サイズとモードを考えます。大きさは画素数に応じて算出された幅/高さのタプルを、与えられています。シングルチャンネル画像のために、唯一の変数色値所与、マルチチャンネル画像のために、可変色タプル(チャネルあたりの値)を与えられました。バージョン1.1.4以降では、ユーザはまた、変数「赤」に割り当てられた色として、色の名前を使用することができます。変数への色の割り当てがない場合は、画像全体の内容は、0(黒)に割り当てられます。可変色が空の場合、画像が初期化されない、すなわち、全てゼロの画像の内容です。これは、画像をコピーしたり、何かを描画するのに便利です。

画像のサイズを設定するようにすると、128×128赤色画像です。

from PIL import Image
im = Image.open("E:\mywife.jpg")
n_im= Image.new("RGB", (128, 128), "#FF0000")
n_im.show()

コピー

画像をコピーします。あなたがこのチャートにいくつかのデータを貼り付けたい場合は、この方法を使用することができますが、元の画像に影響はありません。

from PIL import Image
im = Image.open("E:\mywife.jpg")
im_copy = im.copy()

クロップクラス

これは、現在の画像から矩形領域のコピーを返します。変数は右側に画素座標で、左側を定義する4つのタプルボックスです。そのような理解を容易にするために画像の座標の原点、100×100(画素)の傍受などの左上隅に示す原画像のボックス(100100200200)として、原画像における位置座標を表現するために取られ、次の概略図でありますボックス(B1、A1、B2、A2)。マッピングソフトウェアVisio2016。これは怠惰な操作です。ソース画像の変化は、削減画像に反映されなくてもよいです。切削負荷へのコールの別のコピーのコピーを入手します()。

from PIL import Image
im = Image.open("E:\mywife.jpg")
box = (300, 100, 700, 700)              ##确定拷贝区域大小
region = im.crop(box)                   ##将im表示的图片对象拷贝到region中,大小为box
region.show()

貼り付けクラス

図は、他の画像の上に他方に接着しました。変数(同じ(0,0))ボックスまたは左上隅の2組与えられ、左、上、右と下の4タプルピクセル座標を定義する、または空です。4-タプルが与えられた場合、画像のサイズは、同じ面積で貼り付けることができます。パターンが一致しない場合、貼り付けられた画像は、電流モード画像に変換されます。

from PIL import Image
im = Image.open("E:\mywife.jpg")
box=[0,0,100,100]
im_crop = im.crop(box)
print(im_crop.size,im_crop.mode)
im.paste(im_crop, (100,100))             ##(100,100,0,0)
im.paste(im_crop, (400,400,500,500))
im.show()

ドラフト

画像が可能バージョンの所定のパターンとサイズとの一致を返すように画像ファイルのローダー構成。

from PIL import Image
im = Image.open("E:\mywife.jpg")
print(im.size,im.mode)
new_im = im.draft("L", (200,200))
print(new_im.size,new_im.mode)
new_im.show()

クラスを回転させます

バック画像回転後の画像のコピー約所与の角度を時計回りに記載の方法。可変フィルタは、BILINEARまたは1つのバイキュービックNEARESTです。変数は省略または画像モードが「1」または「P」である場合、デフォルトは最も近いです。trueの場合、変数を展開し、出力画像が十分な大きさで、回転画像をロードすることができることを示しています。デフォルトはfalseまたは、出力画像と入力画像のサイズと同じ大きさである場合。

from PIL import Image
im = Image.open("E:\mywife.jpg")
im_45 = im.rotate(45)
im_30 = im.rotate(30, Image.NEAREST,1)
print(im_45.size,im_30.size)
im_45.show()
im_30.show()

おすすめ

転載: www.cnblogs.com/gongcheng-/p/11084876.html