透視変換 (Homography Transformation)
今回は干潟を斜め上の角度から撮影した画像をオリジナル画像とし、ホモグラフィー変換によって真上から撮影したような形状に変形する例を紹介します。 平面の変形方法にはいくつか種類がありますが、透視変換(ホモグラフィー変換)は最…
今回は干潟を斜め上の角度から撮影した画像をオリジナル画像とし、ホモグラフィー変換によって真上から撮影したような形状に変形する例を紹介します。 平面の変形方法にはいくつか種類がありますが、透視変換(ホモグラフィー変換)は最…
移動体の追跡や粒子のカウントのチュートリアル中では輪郭構成点から近似的な中心座標を求める手法を紹介していましたが、今回は厳密な重心を求める手法を紹介します。まずは重心の定義から見ていきましょう。なお、同様のことをPyth…
C++とOpenCVを使ってフーリエ変換を行います。フーリエ変換はJPEGの圧縮にも使われる技術ですが、ノイズの除去などにも応用が可能です。 まず、フーリエ変換についてですが、フーリエ変換は元の画像あるいは波形から、それ…
今回はC++とOpenCVで画像をリサイズする方法の紹介です。PythonとOpenCVでのリサイズはこちらです。 imshowの直前で縮小を行えば表示される画像を小さくすることができます。解析処理の後で表示する画像を縮…
1.png, 2.png, 3.png …..というような連番ファイルを読み込む方法を紹介します。今回はimg[0~10の数字].pngという規則性のある連番画像を読み込み、縦横0.5倍に縮小してからout[…
OpenCV 1系と2系以降では画像または行列の保持に使われる型に違いがあります。IplImage型とMat型ですが、これらは互いに変換可能です。 #include "opencv/cv.h" #in…
CSVとはコンマ区切りのファイル形式です。例えば、下のような形式のデータはCSV形式です。このようなデータが格納されたファイルからデータを数値として読み込む方法を紹介します。 0,914,523 1,915,524 2,…
ルックアップテーブル(LUT)関数を用いることで、Matの全ての要素に一律な基準で値の変更する場合に高速化が期待できます。 #include "opencv/cv.h" #include "…
今回は、マスク画像を自動的に作る方法を紹介します。画像の一部分しか解析に必要ない、除外したいという場合にはマスク画像を用いてこれを実現できます。マスクという言葉の”隠す”という意味の通り、マスク画…
2つのMatを入力に、その差の絶対値を求めることができます。今回は2種類の方法で計算しています。また、ゼロでないpixelの数をcountNonZero関数で求めています。2つのやり方のどちらでも同じ非ゼロpixel数が…