参考https://blog.csdn.net/magicyang87/article/details/7246771

1.bitset转opencv cv::Mat

注意
(1)Mat 的列为32列,类型为uchar
(2)BRIEF::bitset 的长度为256
(3)每8个构成一个uchar
这个测试ok

vector<BRIEF::bitset> temp_brief_descriptors;
extractor(image, keypoints, temp_brief_descriptors);
brief_descriptors_mat=Mat::zeros(brief_descriptors.size(),32,CV_8UC1);
int row=0;for(iter = temp_brief_descriptors.begin(); iter!=temp_brief_descriptors.end();iter++){BRIEF::bitset bits=*iter;for (int i = 0; i < 32; i += 8){char ch;for (int j = 0; j < 8; ++j){if (bits.test(i + j))   // 第i + j位为1ch |= (1 << j);elsech &= ~(1 << j);}brief_descriptors_mat.at<uchar>(row, i)=(uchar)ch;}row++;}
void convert_bitset_to_Mat(vector<BRIEF::bitset> temp_brief_descriptors,cv::Mat& out_brief_descriptors_mat)
{//2.convert bitset to Matout_brief_descriptors_mat=cv::Mat::zeros(temp_brief_descriptors.size(),32,CV_8UC1);int row=0;for(vector<BRIEF::bitset> :: iterator iter = temp_brief_descriptors.begin(); iter!=temp_brief_descriptors.end();iter++){BRIEF::bitset bits=*iter;for (int i = 0; i < 32; i++){char ch=' ';int n_offset=i*8;for (int j = 0; j < 8; j++){if (bits.test(n_offset + j))    // 第i + j位为1ch |= (1 << j);elsech &= ~(1 << j);}out_brief_descriptors_mat.at<uchar>(row, i)=(uchar)ch;}row++;}}

2.opencv cv::Mat转bitset

这段代码测试有问题!找不出原因!

//1.convert Mat to bitsetfor(int i=0;i<brief_descriptors_mat.rows;i++){BRIEF::bitset bits;bits.resize(256);bits.reset();for (int j = 0; j < 32; j ++){char ch=(char) brief_descriptors_mat.at<uchar>(i, j);int n_offset = j * 8;for (int k = 0; k < 8; ++k){bits.set(n_offset + k, ch & (1 << k));}}brief_descriptors.push_back(bits);}

convert bitset descriptor - cv::Mat相关推荐

  1. OpenCV【零】—————cv::Mat——Mat对象创建方法

    OpenCV (一)--Mat对象创建方法 目录 OpenCV (一)--Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效 ...

  2. 深入了解cv::Mat

    一.代码实现 cv::Mat类是用来存放图像(以及其他矩阵数据)的数据结构.在所有的OpenCV类和函数中,这个数据结构具有核心地位. 上代码: #include <iostream>#i ...

  3. 【FFmpeg】使用sws_scale将AVFrame转换后的图像数据放入cv::Mat中

    1.方法一,伪代码如下 cv::Mat mat; AVFrame avFrame; const int stride[] = {static_cast<int>(mat.step[0])} ...

  4. 【OpenCV】正确创建用于保存YUV420P格式的cv::Mat

    1.问题描述 cv::Mat保存RGB24或BRG24格式时,传入宽.高和格式类型CV_8UC3就行了:今天在创建cv::Mat用来保存YUV420P时,有点懵圈了,因为类型是CV_8UC1,直接传宽 ...

  5. 【OpenCV】cv::Mat和std::vector之间的相互转换

    Mat转换成Vector 以vector 为例,其它模型类似 vector getVector(const Mat & a) { Mat b; a.convertTo(b, CV_64F); ...

  6. cv::Mat使用笔记

    1. 构造 无参数构造方法 Mat::Mat() 创建行数为 rows,列数为 col,类型为 type 的图像 Mat::Mat(int rows, int cols, int type) 创建大小 ...

  7. 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray

    错误 LNK2019 无法解析的外部符号 "public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_Output ...

  8. Layout of the output array img is incompatible with cv::Mat (step[ndims-1] !

    Layout of the output array img is incompatible with cv::Mat (step[ndims-1] https://blog.csdn.net/tqc ...

  9. 【opencv】4.初始化Mat的方式、访问cv::Mat中的某个元素

    可以参考:https://www.cnblogs.com/guoben/p/12728390.html 方法1: cv::Mat img_1 = cv::Mat::zeros(cv::Size(col ...

  10. 【OpenCV3】cv::Mat中的数据按行列写入txt文件中

    在使用opencv进行图像处理的过程中,经常会涉及到将文件中的数据读入到cv::Mat中,或者将cv::Mat中的数据写入到txt文件中. 下面就介绍一种我常用的将cv::Mat中的数据写入到txt文 ...

最新文章

  1. 怎样修改Ubuntu的root帐户密码并使用root登录
  2. Codeforces Gym 100513G G. FacePalm Accounting 暴力
  3. How to make app start automatically When the application starts
  4. c++同一屏幕输出多种颜色字体
  5. SpringBoot整合MongoDB(实现一个简单缓存)
  6. 将ALV GRID中改变的值更新到ALV内表中
  7. 面试官问我:如何解决ABA问题?我给出接近满分的回答
  8. 项亮 陈义 王益《推荐系统实践》
  9. 门户网站服务器迁移,云服务器怎么迁移网站
  10. [蓝桥杯][2018年第九届真题]全球变暖
  11. java 异常处理 简书_Java基础知识8-异常处理
  12. 关于url传参中文乱码问题
  13. 万豪国际数据再遭泄露影响520万客户,两名员工账户为突破口
  14. 手机端与pc端页面html5,浅谈pc和移动端的响应式的使用
  15. Object-C学习(一)——类别的创建、实现及调用
  16. react 动态获取数据
  17. 【axure手机原型】iOS应用设计要点总结
  18. MATLAB读取图像相关的一些操作
  19. 罗永浩:一个极端个人理想主义的创业者
  20. 奇趣分享综合趣事百科文章类型discuz模板

热门文章

  1. 正则匹配过滤出微信公众号模板内容
  2. CTA-敏感行为-复制到剪切板/从剪切板粘贴
  3. Android音视频之不同设备之间的视频通话(webSocket)
  4. 初识 Arm 处理器
  5. iOS的崩溃率高于Android?来自听云的数据告诉你真相
  6. linux那些事之page fault(do_fault)(5)
  7. Windows安装 choco
  8. CentOS7.5 远程桌面设置
  9. in作为介词的用法_介词in的用法
  10. IDEA环境下模块的右下角蓝色小方块缺失的解决方法