Python

Pythonで画像の一部を切り出す方法

2020-11-04

Pythonで画像の一部を切り出す方法

画像を扱っていると「一部だけ切り出したい」と思うことはないだろうか。

  • 人物の写真から顔だけ切り抜きたい
  • 4コマ漫画のうち1コマだけ切り出したい
  • パズルみたいに画像をN分割したい

少ない枚数を切り出すのであれば、手動で作業してもさほど時間はかからない。
しかし枚数が多くなると切り出す作業の負荷が高くなる

そして面倒な単純作業は極力排除したいのがITエンジニア。

今回はそんな画像処理の問題を解決するために「Pythonで画像の一部を切り出す方法」について解説する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。最近は画像も扱い始めた。

記事を読むメリット

  • Pythonで画像の一部を切り出す方法がわかる

  • Pythonで画像の一部を切り出す方法

    Pythonで画像の一部を切り出す方法。

    それはOpenCVを使うと可能である。

    ではどのように使えばよいか、OpenCVの使い方を説明していく。



    OpenCVのインストール

    OpenCVをインストールするには pip install を用いる。

    $ pip install opencv-python
    



    OpenCVを使用して画像を切り出す

    OpenCVをインストールしたら次はトリミング処理となる。

    まずは入力の元画像を用意する。

    pythonで切り出す前の画像
    元画像(649x800 px)


    画像が用意できたらOpenCVの cv2.imread() で画像を読み込む。

    すると画像データを2次元配列のように扱うことができるので、切り出したい範囲を img[top : bottom, left : right] の形で切り出したい四隅のピクセル値を指定する。

    先にY軸方向のtopからbottomを指定するので、間違わないように注意したい。

    トリミングした画像データは cv2.imwrite() のメソッドで名前を付けて保存することができる。

    import cv2
    
    # 画像読み込み
    img = cv2.imread("boy_question.jpg")
    
    # img[top : bottom, left : right]
    # 画像の切り出し、保存
    trim_img = img[240 : 650, 110: 530]
    cv2.imwrite("trim_img.jpg", trim_img)
    


    トリミング結果は以下のようになる。

    pythonでトリミングした後の画像
    トリミング後の画像(420x410 px)


    コメントを除けば、たった4行のコードで画像のトリミングができてしまった。


    これは簡単!
    OpenCV、便利ですな



    Pythonで画像の一部を切り出す方法 まとめ

    Pythonで画像の一部を切り出すにはOpenCVを使うと簡単に切り出すことができる。

    使い方は以下の通り。

    ポイント

  • OpenCVの cv2.imread() で画像を読み込む
  • 切り出したい範囲を img[top : bottom, left : right] の形で四隅を指定して切り出す
  • トリミングした画像データを cv2.imwrite() のメソッドで保存する

  • OpenCVは画像切り出しだけでなく、多種多様な機能を備えているので、使いこなせるようになると市場価値の高いスキルを得られるだろう。

    参考



    Pythonのコードが出来上がったら次は定期的に実行させる環境に移してコードを実行すると思う。

    ランニングコストをかけてネット上に実行環境を作るのもありだが、小型PCを購入してランニングコストを下げるのも1つの手かと思われる。

    小型PCの魅力とオススメの機種について書いた記事があるので、もしよければ参考にして欲しい。

    ITipsと同じようなブログを作る方法

    ブログに興味がありますか?

    もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

    サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
    同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

    ランキング参加中

    にほんブログ村 IT技術ブログへ

    他にもブログやSNSで紹介してくれると励みになります。

    はてブのコメントで酷評されると泣きます(´;ω;`)

    -Python
    -

    © 2024 ITips