ライブラリ無しでPythonで画像モノクロ化
ライブラリ(PIL,numpy)を使い,最低限のコードを作る
まずはできあがったプログラムと環境を
Windows11環境,Python 3.10.6
from PIL import Image import numpy as np img = Image.open('original.jpg') width, height = img.size img2 = Image.new('RGB', (width, height)) img_pixels = [] for y in range(height): for x in range(width): img_pixels.append(img.getpixel((x,y))) img_pixels = np.array(img_pixels) for y in range(height): for x in range(width): # aa=int((img_pixels[y*width+x][0]+img_pixels[y*width+x][1]+img_pixels[y*width+x][2])/3) X = 2.2 aa = int(((0.222015*img_pixels[y*width+x][0])**X + (0.706655*img_pixels[y*width+x][1])**X + (0.071330*img_pixels[y*width+x][2])**X)**(1/X)) img2.putpixel((x,y), (aa,aa,aa)) img2.show()