OpenCVで入力画像を等分割する

今回は、ある用途に使いたかったので、OpenCVで入力画像を任意の分割数(M×N)で分割するプログラムを書いたため、それを共有します。

今回の環境

・OS : Windows10(64bit)
・Visual Studio 2015 Community
・OpenCV 2.4.11
(上記全て環境構築済の状態でビルド)

今回はOpenCVは環境済の状態でスタートするので、OpenCVの環境構築は以下の記事などを参照してください。

過去記事①:Nugetを使ってOpenCVの環境構築(Visual Studio 2015) 

過去記事②:Visual Studio 2015でOpenCV 3.4環境構築(Windows10)

ソースコード

ソースコードは以下となります。

「col_num」に列方向の分割数を「row_num」に行方向の分割数を入れ、入力画像の名前をtest1.jpg“としました。

この部分は好きなように変更してください。

もっと効率の良い書き方もある気がしますが、ひとまず今回は実装することを優先で作ってみました。

実行結果

今回は以下の画像を入力画像としてみました。

(1) col_num=3 / row_num=2(横方向3分割、縦方向2分割)

以下のような出力結果が得られました。横方向に3分割、縦方向に2分割されています。

(2) col_num=11 / row_num=7(横方向11分割、行方向7分割)

かなり多い分割数でも以下のように対応できます。

フォルダに並べると、正常に分割できていそうなことがわかりました。

まとめ

詳細なソースコードの解説までできていませんが、もし画像を等分割したいというときには使ってみてください。

分割数や入力画像名は、本当は引数にして外から与えられるようにした方が使いやすいような気はしますが、今回はそこまでは作りこんでいません。

スポンサーリンク

シェアする

フォローする