【python-openCV】画像を縦、横方向に指定数で等分割する方法!

こんにちは、ヒガシです。

 

この記事ではpythonを使って、以下の画像を、

 

このように縦、横方向に等分割する方法をご紹介していきます。

上の画像では縦6枚、横6枚で分割していますが、これらの分割数も自由に変更できるようになっています。

 

AIに画像を学習させる際のサイズ調整や画像の水増しにぜひご活用ください。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

必要なライブラリ準備

今回はpythonというプログラミング言語を使っていくわけですが、その中でopenCVというライブラリを使用して実行していきます。

 

実行する環境によってインストール方法が若干異なるので、あなたの環境に応じてインストール作業を進めましょう。

 

やり方はググればすぐに出てきます。

スポンサーリンク

フォルダ構成の確認

以下が今回のフォルダ構成です。

sample.ipg:これから分割される画像データ

split_pic.py:以降で紹介するプログラムが書かれたファイル

split_picフォルダ:分割後の画像が保存されるフォルダ

 

以降のプログラムのこの構成で動くようになっています。

流用する際は、この構成に整える or プログラムを書き換えてください。

スポンサーリンク

画像分割のサンプルコード

それでは実際のコーディング作業に入っていきましょう。

 

今回は縦6枚、横6枚に分割するようにコードを書きました。

#ライブラリのインポート
import cv2
import numpy as np
#画像の読み込み
img=cv2.imread('sample.jpg',cv2.IMREAD_COLOR)
h,w=img.shape[:2]
split_x=6
split_y=6
#画像の分割処理
cx=0
cy=0
for j in range(split_x):
    for i in range(split_y):
        split_pic=img[cy:cy+int(h/split_y),cx:cx+int(w/split_x),:]
        cv2.imwrite('split_pic/split_y'+str(i)+'_x'+str(j)+'.jpg',split_pic)
        cy=cy+int(h/split_y)
    cy=0
    cx=cx+int(w/split_x)

 

基本的にはopenCVで画像の配列を読み込み、その配列をfor文を回しながらゴリゴリ処理をして、その処理された配列を再度openCVが画像化するという処理を行っているだけです。

 

ぜひ一度処理の流れを追いかけてみましょう。

スポンサーリンク

サンプルコードの実行結果

最後にこのサンプルコードを実行してみましょう。

 

まずは縦6(split_y=6),横6(split_yx=6)での実行結果です。

 

次に縦4(split_y=4),横4(split_yx=4)での実行結果です。

 

どちらも問題なく実行できていそうですね。

スポンサーリンク

おわりに

というわけで今回はpython-openCVを使って、画像を指定した分割数で等分割する方法をご紹介しました。

AIに読み込ませるデータ構築の際などにぜひご活用ください。

 

画像をAIに学習させる手順は以下で詳細解説しています。

興味があればこちらもあわせてご覧ください。

【人工知能】AIに学習させる画像のデータセットを作成する方法

 

このように、私のブログでは様々なプログラミングスキルを紹介しています。

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました