OpenCVで長方形の画像に余白をつけて正方形にする

長方形の画像を正方形にしたいときに、長方形+余白で正方形にするコードを書きました。

スポンサーリンク

長方形を正方形にする手段

  1. 長方形から正方形を切り出す
  2. 長方形を変形させて正方形にする
  3. 長方形に余白をつけて正方形にする

主にこの三つが考えられました。

正方形を切り出すのは、一部の画像が切れてしまうので却下。長方形を正方形に変形するのも被写体の形が歪むので却下。

というわけで、余白をつけて正方形にしてみます。(正確には余黒…?)

余白の付け方

OpenCV を使うのは初めてだったので、なかなか苦労しました。

方針

  1. 画像のサイズを取得し、長辺の長さを正方形の一片の長さにする
  2. 1.で決めた大きさの正方形を新規作成する
  3. 長方形を正方形の上に重ねて保存する

という流れで進めようかと。

実装

1.と2.は次の記事の内容を使えばできます。

問題は3.です。画像に画像を重ねるという処理は、デフォルトで実装されていないようです。ありそうな気もしますが。

結論として、長方形の画像のすべての行のパラメータを取得して、正方形の画像に上書きするという方法を採りました。

 test.jpg

new_img.jpg

参考サイト →

スポンサーリンク

コメント・質問する