一連の画像から yml ファイルに語彙 (クラスターの重心) があります。画像から新しい SURF 記述子を取得しました。この新しいキーポイント記述子が、語彙に対してどの程度離れているか、しきい値を使用して確認したいと思います。良い一致と悪い一致の両方を保存します。良い説明と悪い説明を取得したら、それらをキーポイントとして画像にマークする方法を教えてください。私はopencvにまったく慣れていません。誰かが提案やサンプルコードで私を助けてくれます.
そして、ここに私のサンプルコードがあります
Mat dictionary;
FileStorage fs("../bin/dictionary1.yml", FileStorage::READ);
fs["vocabulary"] >> dictionary;
fs.release();
std::vector<KeyPoint> keypoints_1;
detector.detect( img_1, keypoints_1 );
SurfDescriptorExtractor surfDesc;
Mat descriptors1;
surfDesc.compute(img_1, keypoints_1, descriptors1);
私はこのようなことをしたいと思います
for all image descriptor
for all vacabulary
if(dist is less)
goodmatch
cvcolor=blue
else
badmatch
cvcolor=red