1

我的理解有点小问题。

opencv 中 Brisk 描述符 Mat 值的标准类型是标准大小为 8 位的 unsigned char 值。KeyPoint 的完整描述符的大小为 16 个无符号字符值。8bitx16 = 128bit 虽然在论文中你只是发现你有一个 512 位的描述符。

任何人都可以帮助我摆脱这种不匹配吗?我还没有在 OpenCV 文档中发现描述符的位大小是否可扩展(还没有?)。

4

1 回答 1

1

你在哪里找到那个 16 数字的?这似乎是错误的。

Mat img = imread( "lena.png", cv::IMREAD_GRAYSCALE );

BRISK brisk;
vector<KeyPoint> kp;
brisk.detect(img,kp);

Mat desc;
brisk.compute( img, kp, desc) ;
cerr << desc.rows << " " << desc.cols << " " << desc.type() << endl;

167 64 0

因此,找到了 64 个字节的 167 个 BRISK 描述符(即每个描述符 512 位)。

于 2014-05-28T15:46:45.953 回答