我的理解有点小问题。
opencv 中 Brisk 描述符 Mat 值的标准类型是标准大小为 8 位的 unsigned char 值。KeyPoint 的完整描述符的大小为 16 个无符号字符值。8bitx16 = 128bit 虽然在论文中你只是发现你有一个 512 位的描述符。
任何人都可以帮助我摆脱这种不匹配吗?我还没有在 OpenCV 文档中发现描述符的位大小是否可扩展(还没有?)。
我的理解有点小问题。
opencv 中 Brisk 描述符 Mat 值的标准类型是标准大小为 8 位的 unsigned char 值。KeyPoint 的完整描述符的大小为 16 个无符号字符值。8bitx16 = 128bit 虽然在论文中你只是发现你有一个 512 位的描述符。
任何人都可以帮助我摆脱这种不匹配吗?我还没有在 OpenCV 文档中发现描述符的位大小是否可扩展(还没有?)。
你在哪里找到那个 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 位)。