PIL

PIL / 任意の排列座標を中心に、任意の排列座標を回転させる

PIL

import matplotlib.pyplot as plt import numpy as np def rotRC(rad, RC, centerRC=[0.0, 0.0]): COS = np.cos(rad) SIN = np.sin(rad) centerRC = np.array(centerRC) RC = np.array(RC) # 座標の取りかたを数学座標(x, y)ではなく排列座標[行番号, 列番号…

PIL / 2次元排列の全要素のインデックスを収容した3次元排列を作る

PIL

2次元排列の先頭、末尾のインデックス(負数を許容)を指定することにより、全要素のインデックスを収容した3次元排列を作ることを考える。forループを使えば簡単に出来るが使わない。 (追記: numpy.where()という函数があった(2018年12月6日)) import numpy a…

PIL / 回転させた矩形がぴったり収まる背景矩形の寸法を求める

PIL

いわゆる回転行列を応用する。第1象限の中だけで行ったり来たりするよう(xy両軸を中心にミラーリングされるよう)工夫する。 import numpy as np import matplotlib.pyplot as plt def expandRC(rad, rows, cols): COS, SIN = np.abs([np.cos(rad), np.sin(ra…

Python / PIL / 画像をグレースケールにする、画像を2値化する

PIL

グレースケールにするときは np.repeat()を使ってAllBrightness = [1,2,3]からAllRGB = [[1,1,1], [2,2,2], [3,3,3]] という排列を作ってImageオブジェクト化すればよい。 2値化するときは、たとえば閾値を100とするなら AllRGB = [[1,2,3],[10,20,30],[100,…

Python / PIL / 画像を明るくしたり暗くしたりする

PIL

PIL.Imageは画像の読み込み、生成、エクスポートに使うだけにして、あとはnumpyだけで処理する。 from PIL import Image import matplotlib.pyplot as plt import numpy as np class IMAGE: def __init__(self, imgPath): self.srcImg = Image.open(imgPath)…

Python / PIL / 画像の読み込み、サイズの取得、RGB値の取得、輝度の計算、ヒストグラムの表示

PIL

from PIL import Image import matplotlib.pyplot as plt import numpy as np class IMAGE: def __init__(self, imgPath): self.srcImg = Image.open(imgPath) # 画像を読み込む。 self.numOfPixels = self.srcImg.width * self.srcImg.height # 全画素数を…

Python / PIL / 画像を読み込む / PIL.Image.open(ファイルパス)

PIL

from PIL import Image import matplotlib.pyplot as plt def showImg(imgPath): srcImg = Image.open(imgPath) plt.imshow(srcImg) plt.show() showImg("C:\\Users\\NEC-PCuser\\Desktop\\akiho.png") 実行結果: