概要
OpenCVの基礎を固めます.第2回目は画像のトリミングに取り組みました.
OpenCVとは
・Pythonライブラリの1種
・Intel提供のOSS
・画像・動画処理専門ライブラリ
・Pythonの一般的な前処理ライブラリとして挙げられる
メリット
・DPL用の前処理が簡略化でき容易
・ 多様なライブラリと相互性がある
環境
Windows11,VSCode,python(3.10)
画像の一部を切り出す:座標指定・スライシング
画像は自分で撮影したケーキの画像cake.jpgを使います.
コードの先頭にimport cv2でライブラリをインポートし,OpenCVを使えるよう準備します.
#OpenCVのインポート
import cv2
画像のwidth×heightを調べます.print関数にimg.shapeと記載し,画像サイズは360×478と分かりました.スライシングはimg[top:bottom,left:right]に取り出したい座標を指定します.
import cv2
img=cv2.imread("cake.jpg")
print(img.shape)
#(360, 478, 3) (縦幅,横幅,色相数)を表しています.
timg=img[100:250,200:340]
#切り抜きたい部分の座標を入力
cv2.imwrite("timg.jpg",timg)
cv2.waitKey(0)
色相数についてコメントアウトで触れていますが,3はカラー画像(RGB),2は二値画像(白黒)を表現しています.
結果
出力画像は以下のtimg.jpgの結果になりました.元画像のケーキの飾り部分が抜き出せていますね.
スライシングについて
今回のスライシングはトリミング方法の1つを紹介したものです.
この方法は任意の座標で,好きなサイズに画像を抜き出すことができます.(もちろん画像の縦横幅以内の範囲でですが)
スライシングについての図解をしていたサイトがあったので,自分でも理解の為に図解を作ってみました.
スライシングは分割の意味があり,これをトリミングに用いている方法です.
上の図は処理のイメージです.座標を用いて四角形に切り出して抽出します.