この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| 
                    初めてのopencv3 [2017/10/24] adash333 [Image.sizeとnp.array.shape]  | 
                
                    初めてのopencv3 [2018/10/07] (現在) | 
            ||
|---|---|---|---|
| ライン 57: | ライン 57: | ||
| # img2をcat2.jpgという名前で保存する | # img2をcat2.jpgという名前で保存する | ||
| + | img2.save(‘cat2.jpg’) | ||
| </code> | </code> | ||
| + | cv2(OpenCV)の場合\\ | ||
| + | cv2.imreadで画像を読み込む。このとき画像はBGRになっている。\\ | ||
| + | OpenCVで読み込んだ画像のタイプはnumpy arrayになっているため、画像の縦横を調べるときは、Numpyのshapeメソッドを用いる。 | ||
| + | |||
| + | <code> | ||
| + | %matplotlib inline | ||
| + | import cv2 | ||
| + | import matplotlib.pyplot as plt | ||
| + | |||
| + | img = cv2.imread(‘cat.jpg’) | ||
| + | |||
| + | print(img.shape) | ||
| + | |||
| + | # OpenCVの画像はデフォルトだとBGR画像であるため、 | ||
| + | # matplotlib(こちらはRGB画像)で正しく表示するためには色変換が必要 | ||
| + | # 具体的には、cv2.cvtColor()関数を用いる | ||
| + | cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) | ||
| + | plt.imshow(cvimg) | ||
| + | </code> | ||
| Numpyのnp.array.shapeは、行列の行(height:縦に並んだ要素の個数)と列(width:横に並んだ要素の個数)を返します。 | Numpyのnp.array.shapeは、行列の行(height:縦に並んだ要素の個数)と列(width:横に並んだ要素の個数)を返します。 | ||
| + | |||
| + | <code> | ||
| + | import numpy as np | ||
| + | a = np.arange(60).reshape(10, 6) | ||
| + | # 配列の形 | ||
| + | a.shape | ||
| + | |||
| + | # 要素数 | ||
| + | a.size | ||
| + | |||
| + | # 行数、列数の取り出し | ||
| + | # 画像をNumpy配列に変換したときは、以下を | ||
| + | # height, width = a.shape | ||
| + | # と書くことがある | ||
| + | nrow, ncol = a.shape | ||
| + | print(nrow) | ||
| + | print(ncol) | ||
| + | </code> | ||
| + | |||
| ライン 68: | ライン 106: | ||
| sizeとshapeで、widthとheightの順番が逆になりますので、注意が必要です。 | sizeとshapeで、widthとheightの順番が逆になりますので、注意が必要です。 | ||
| </wrap> | </wrap> | ||
| + | |||
| + | PILとNumpyの組み合わせ\\ | ||
| + | 以下は、NumPy配列の扱いとなります。 | ||
| + | <code> | ||
| + | from PIL import Image | ||
| + | import numpy as np | ||
| + | |||
| + | # グレースケール画像にしてからNumpy配列に変換 | ||
| + | im = np.array(Image.open('img.jpg').convert('L')) | ||
| + | print(im.shape) | ||
| + | print(im.dtype) | ||
| + | print(im) | ||
| + | |||
| + | # カラー画像のままNumpy配列に変換 | ||
| + | im = np.array(Image.open('img.jpg')) | ||
| + | print(im.shape) | ||
| + | print(im.dtype) | ||
| + | print(im) | ||
| + | |||
| + | |||
| + | </code> | ||
| + | |||
| + | |||
| + | Chainer用の画像処理メモ(4)pythonでの画像の操作 "from PIL import Image"\\ | ||
| + | http://twosquirrel.mints.ne.jp/?p=20135 | ||
| + | |||
| + | |||
| + | Chainer用の画像処理メモ(5)初めてのNumPy"import numpy as np"\\ | ||
| + | http://twosquirrel.mints.ne.jp/?p=20153 | ||
| + | |||
| + | [OpenCV Python]画像の幅、高さ、チャンネル数、depth取得 | ||
| + | atinfinity edited this page on 27 Jul 2016\\ | ||
| + | https://github.com/atinfinity/lab/wiki/%5BOpenCV-Python%5D画像の幅、高さ、チャンネル数、depth取得 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | PythonとOpenCVで画像処理②【ウィンドウ、画像のサイズ変更】 | ||
| + | \\ | ||
| + | http://rasp.hateblo.jp/entry/2016/01/22/230852 | ||
| + | |||
| + | Python – NumPyで画像を配列として取得する\\ | ||
| + | https://endoyuta.com/2015/09/27/python-numpyで画像を配列として取得する/ | ||