opencvで画像切り抜き
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン | 次のリビジョン両方とも次のリビジョン | ||
opencvで画像切り抜き [2017/11/28] – [OpenCV3で画像の読み込み] adash333 | opencvで画像切り抜き [2017/11/28] – [OpenCV3で画像の読み込み] adash333 | ||
---|---|---|---|
行 23: | 行 23: | ||
画像データはnumpyのarray(多次元配列)として格納されている | 画像データはnumpyのarray(多次元配列)として格納されている | ||
- | 入出力の可視化 | ||
- | 画像の入力は、cv2.imread() → numpy.ndarray型の画像データ | ||
- | |||
- | OpencCVの画像データの構造 | ||
- | カラー画像:(height x width x channels) の3次元配列 | ||
- | グレー画像:(height x width)の2次元配列 | ||
まず、Lenna.pngを、https:// | まず、Lenna.pngを、https:// | ||
行 62: | 行 56: | ||
print(img.shape) | print(img.shape) | ||
</ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 入出力の可視化\\ | ||
+ | 画像の入力は、cv2.imread() → numpy.ndarray型の画像データ | ||
+ | |||
+ | OpencCVの画像データの構造\\ | ||
+ | カラー画像:(height x width x channels) の3次元配列\\ | ||
+ | グレー画像:(height x width)の2次元配列 | ||
+ | |||
+ | 今回は、hight 512, width 512, channels 3のカラー画像ですので、(512, | ||
+ | |||
+ | 画像をグレースケールで読み込みたい場合は、cv2.imread(' | ||
+ | |||
+ | < | ||
+ | # Lenna.pngを、https:// | ||
+ | |||
+ | import cv2 | ||
+ | # 画像をグレースケールで読み込み | ||
+ | gray = cv2.imread(' | ||
+ | print(gray.shape) | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ==== 画像データがnumpy配列である利点 ==== | ||
+ | numpy, scipyなどの線形代数関数が、OpenCVでのプログラムでも使用可能\\ | ||
+ | 計算スピードが速い\\ | ||
+ | scikit-learnやtensorflow, | ||
+ | |||
+ | ==== OpenCVのnumpy画像データの注意点 ==== | ||
+ | |||
+ | numpyに慣れる必要あり | ||
+ | |||
+ | matplotlib, PIL, scikit-imageは、RGB画像で保持するのに対して、 | ||
+ | OpenCVはBGR画像がデフォルト(matplotlibで描画するときにカラー変換が必要) | ||
+ | |||
+ | OpenCVの画像は全て numpy.uint8型のnumpy.array | ||
+ | 例えば、scikit-imageでは、グレー画像はnumpy.float64型なので、注意。 | ||
+ | |||
+ | |||
+ | ===== OpenCV3でJupyter Notebook上で画像の表示 ===== | ||
+ | |||
+ | |||
==== ソースコード(途中) ==== | ==== ソースコード(途中) ==== | ||
opencvで画像切り抜き.txt · 最終更新: 2018/10/07 by 127.0.0.1