###前提・実現したいこと
アフィン変換を適用した画像の特徴点マッチングプログラムを作成したいのですが、
行列の適用方法がわかりません。
###発生している問題・エラーメッセージ
行列をどう適応するのか不明。
###該当のソースコード
C++
1// 変換なし、同じ画像サイズの二枚の画像を特徴点マッチングさせる自作プログラム 2// ズレ量を算出しマッチングプログラムを評価 3 4/* 省略 */ 5/* 特徴点抽出、特徴量記述にはSIFTを使用 6keypoint1,keypoint2はimg1,img2のkeypoint群 7match1[i]はi個目のマッチングにおけるkeypoint1内の番号 8match2[i] 同上 */ 9 10double erx, ery, error; 11 12 for (int i = 0; i < count; i++) { 13 cout << i << " : " << "key1の" << match1[i] << "個目とkey2の" << match2[i] << "個目がマッチング" << endl; 14 15 // ピクセルの大小比較・ずれ計算 16 erx = keypoint1.at(match1[i]).pt.x - keypoint2.at(match2[i]).pt.x; 17 if (erx < 0) erx *= -1; 18 ery = keypoint1.at(match1[i]).pt.y - keypoint2.at(match2[i]).pt.y; 19 if (ery < 0) ery *= -1; 20 error = erx + ery; 21 22 cout << "key1の座標" << keypoint1.at(match1[i]).pt << "key2の座標" << keypoint2.at(match2[i]).pt << endl; 23 cout << "ズレ量は" << error << "pixel" << endl; 24 25 } 26 27/* 省略 */
###補足情報(言語/FW/ツール等のバージョンなど)
・VisualStudio2017
・openCV3.3.0
http://www.robots.ox.ac.uk/~vgg/research/affine/
上記サイトのViewPointの画像の使用を検討しています。
解凍した「Viewpoint>H1to2p」フォルダ内に
8.7976964e-01 3.1245438e-01 -3.9430589e+01
-1.8389418e-01 9.3847198e-01 1.5315784e+02
1.9641425e-04 -1.6015275e-05 1.0000000e+00
という3x3の行列(?)の記述がありましたが、これをどう適用すればよいかわかりません。(恐らく「Viewpoint>img1」、「Viewpoint>img2」の変換に関係する行列だと思います)
数学的知識が乏しいため、申し訳ありませんが解説を頂けたら嬉しいです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/18 12:19