画像処理など
画像をピクセル単位で足したり引いたりフィッティングしたり、をしたくて結局pythonに流れ着いた。
いろいろてきとーだが、覚え書きするためのメモ。これだと動かないかもだけど、必要事項は書いた。target_funcの中の関数はnumpyを使うのはTIPS。
from PIL import image import numpy as np import math as mt from scipy import optimize def target_funt(x,a,b,c): f = c+ a * np.sin(x-b) return f def main(): im1 = Image.open("test.jpg") rgm_im1 = im1.convert('RGV') size = rgb_im1.size imres = Image.new('RGBA',size) print(size[0]) print(size[1]) for x in range(size[0]) for y in range(size[1]) r1,g1,b1 = rgb_im1.getpixel( (x,y) ) bw1 = (r1+g1+b1)/3/256 xdata = np.array([0,mt.pi/4, mt.pi/2, mt.pi*3/4i]) ydata = np.array([r1, g1, b1, r1)] params, params_cov = optimize.curve_fit(target_func, xdata, ydata) r = params[0] g = params[1] b = params[2] imres.putpixel( (x,y) , (r,g,b,0) ) imres.save('testres.jpg",'jpg') if __name__ = "__main__": main()