pythonで画像処理に挑戦する

#Christmasまでにかわいくなる方法❤
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：もうすぐクリスマスだね☆
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)A3:引きこもりのひよこには関係ないわ～
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：クリスマスぐらいオシャレして出かけよう！今日は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)
```
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)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')
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：できたよ～☆きれいなエメラルドグリーンになるよ☆

実行結果
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/1ff20d01-043c-d2e4-44f3-bbcf78041351.png)!

![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/b5defb65-cd71-c454-67f7-d7b3f282fb84.png)A3:なにこれ・・・小さくなってるし・・・( ;∀;)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：ごめん。しっぱいした。そして、わからなくなった"(-""-)"
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)A3:確実にできる方法を考えよう！

#画像の色を変える
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：今度こそはオシャレになるよ！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)A3:ほんとかな～。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：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')

```
実行結果
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/6eef85fc-55a6-2e22-303a-a832ad55fb2e.png)


![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)A3:ホラーやん・・・・
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：ごめん。これ以上追及したら・・・・寝不足で死にそう・・・・
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/568658ba-10c7-5e54-bca6-ee117614c3f1.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)A3:心の優しい素敵な誰かがそのうち教えてくれるはず。。。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/70f336f8-2364-4862-8675-24031fe8c5be.png)ピーちゃん：教えてもらうならやっぱり向〇理似のひよこがいい♥♥♥
![image.png](https://qiita-image-store.s3.amazonaws.com/0/211326/52ea7d3d-4aa8-a74c-8eec-5c1a9547012e.png)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/