「画像の中心部以外は必要ないから除去したい。」
画像処理などを行っているとこのような状況に出くわすことがあります。
この記事ではそのような状況に対応するために、python-openCVを使って画像の縁を指定したピクセル数で除去するコードをご紹介していきます。
それでは早速やっていきます!
※この作業をpythonというプログラミング言語を用いて実行していきます。インストールから始めたい方は以下からご覧ください。
必要なライブラリの準備
今回はopenCVというライブラリのみを使用します。
openCVのインストール方法については以下の記事で解説しています。
インストールができたらいよいよプログラムの作成です。
openCVで画像の縁を除去するプログラム
今回は以下の画像の縁を切り取っていこうと思います。
この画像は
縦:3024ピクセル
横:4032ピクセル
ありますので、今回は上、下、右、左、それぞれから500ピクセルを除去してみましょう。
つまり最終的には
縦:2024ピクセル
横:2032ピクセル
になります。
この画像をpythonを実行するフォルダにおいておきましょう。
※今回はsample.JPGという名前で保存されている想定でコードを書いています。
事前説明はこのくらいにして、コード紹介にうつります。
◆画像の縁を指定ピクセル数除去するpythonコード
import cv2
cutp=50
img = cv2.imread('sample.JPG', cv2.IMREAD_COLOR)
h,w= img.shape[:2]
img=img[cutp:h-cutp,cutp:w-cutp]
cv2.imwrite('cut_pic.jpg',img)
まぁなにやら長ったらしいことを書いていますが、やっていることは非常にシンプル。
⓪除去するピクセル数を宣言
①cv.imreadで画像を読み込み配列化
②読み込んだ画像の周囲のデータを除去
③加工した配列を再び画像として出力
ということをやっているだけです。
※途中で配列を除去する際に画像の高さと幅が必要なので取得したりしています。
サンプルコードの実行結果
最後に先ほど紹介したサンプルコードを実行してみましょう。
処理前の以下の画像が
先ほどのコードを実行することで以下のようになりました。
しっかりと左側のビルが右側の木の一部がなくなっていますね。
おわりに
というわけで今回はpython-openCVを使って、画像の縁を指定ピクセル数除去する方法をご紹介しました。
pythonはAI開発にも用いられている、最近人気のプログラミング言語です。
少しずつでもpythonスキルを高め、社内での地位を高めていきましょう。
このように私のブログでは様々なプログラミングスキルを紹介しています。
・もっと革新的なことをやりたい。
・プログラミングについてもっと詳しくなりたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント