0

次のコードがあります。

//newImg is a mat of an image and orderedKeyPoint is the result from Fast
cv::FREAK extractor;
cv::Mat queryDescriptors;
extractor.compute(newImg, orderedKeyPoint, queryDescriptors);

queryDescriptors.at< ???>(r,0) を使用して個々のフリーク記述子にアクセスしようとしています。r は任意の有効な行の値ですが、型がわかりません。すべてのドキュメンテーションは、それが単なる記述子であると述べていますが、タイプは Mat か double か、それとも何か他のものですか? これが最善の方法ですか?

cv::Mat descriptor2 = queryDescriptors.at<cv::Mat>(2,0);

個々の記述子を取得して cv::Mat の行の値に入れることで、個々の記述子から queryDescriptors (記述子のマット) を再構築できるようにしたいと考えています。

queryDescriptors.at<cv::Mat>(2,0) = descriptor2;

どんな助けや洞察も大歓迎です、

アイザック

4

2 に答える 2

1

FREAK 記述子は、64 列と numkeypoints 行の uchar Mat です。

したがって、その要素に到達するには:

uchar elm = descriptor.at<uchar>(row,col);

ここで、row はキーポイント ID、col は要素 ID です。

于 2013-05-21T14:20:34.497 に答える