pythonで画像処理に挑戦する


Christmasまでにかわいくなる方法❤

ピーちゃん:もうすぐクリスマスだね☆
A3:引きこもりのひよこには関係ないわ~
ピーちゃん:クリスマスぐらいオシャレして出かけよう!今日はA3ちゃんがChristmasまでにかわいくなるようにオシャレにしてあげる❤

NumPyで画像を配列として取得する

gazouhairetu.py
from PIL import Image
from numpy import *
ig = array(Image.open('pchan.jpg').convert('L'))
print(ig.shape, ig.dtype)
print(ig)

A3:ワクワク☆どんな感じになるんだろう☆

配列から画像を作る:未完

配列から画像.py
from PIL import Image
import numpy as np

a = np.array([
    [
        [230,230,230],[210,210,210],[190,190,190],[170,170,170],[150,150,150]
    ],
    [
        [230,230,230],[210,210,210],[190,190,190],[170,170,170],[150,150,150]
    ],
    [
        [230,230,230],[210,210,210],[190,190,190],[170,170,170],[150,150,150]
    ],
    [
        [230,230,230],[210,210,210],[190,190,190],[170,170,170],[150,150,150]
    ],
    [
        [230,230,230],[210,210,210],[190,190,190],[170,170,170],[150,150,150]
    ],
])

Image.fromarray(np.uint8(a)).save('pchan2.jpg')

for row in a:
    for col in row:
        col[0] = 0

Image.fromarray(np.uint8(a)).save('pchan3.jpg')

ピーちゃん:できたよ~☆きれいなエメラルドグリーンになるよ☆

実行結果
!

A3:なにこれ・・・小さくなってるし・・・( ;∀;)
ピーちゃん:ごめん。しっぱいした。そして、わからなくなった"(-""-)"
A3:確実にできる方法を考えよう!

画像の色を変える

ピーちゃん:今度こそはオシャレになるよ!
A3:ほんとかな~。
ピーちゃん:A3ちゃんがかわいくなる魔法だよ~~~ん☆

hora.py
from PIL import Image
import numpy as np

im = Image.open('A3.jpg')
width, height = im.size
im2 = Image.new('RGB', (width, height))
im_pixels = np.array([[im.getpixel((a,y)) for a in range(width)] for y in range(height)])

reverse_color_pixels = 255 - im_pixels
for y in range(height):
  for a in range(width):

    r,g,b = reverse_color_pixels[y][a]
    im2.putpixel((a,y), (r,g,b))

im2.show()
im2.save('A3hora.jpg')

実行結果

A3:ホラーやん・・・・
ピーちゃん:ごめん。これ以上追及したら・・・・寝不足で死にそう・・・・

A3:心の優しい素敵な誰かがそのうち教えてくれるはず。。。
ピーちゃん:教えてもらうならやっぱり向〇理似のひよこがいい♥♥♥
A3:回答5が確定した瞬間をみた気がします。

クリスマスが近いのに2匹のひよこはかわいくなることができませんでした。。。さてさて、クリスマスイブはどうなることでしょう。

参考URL

https://qiita.com/uosansatox/items/4fa34e1d8d95d8783536
https://endoyuta.com/2015/09/27/python-numpy%E3%81%A7%E7%94%BB%E5%83%8F%E3%82%92%E9%85%8D%E5%88%97%E3%81%A8%E3%81%97%E3%81%A6%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/