极智开发 | opencv Mat 转 darknet Image 数据结构

390 阅读1分钟

欢迎关注我的公众号 [极智视界],获取我的更多笔记分享

   大家好,我是极智视界。本文介绍了 opencv Mat 转 darknet Image 数据结构的方法,篇幅较短,纯属记录。

  下面开始。

// opencv 的 cv::Mat 可以简单通过下述读图得到,也可以直接构造得到,这里使用读图得到
cv::Mat cv_img = cv::imread(imgfile);

int img_w = cv_img.cols;
int img_h = cv_img.rows;
int img_c = cv_img.channels;
unsigned char* imgdata = cv_img.data;
int setp = cv_img.step;

// darknet 的 image 可以直接构造得到
image dk_img = make_image(img_w, img_h, img_c);

// 开始转换 cv::Mat -> dk image
for (int y = 0; y < img_h; ++y) {
  for (int k = 0; k < img_c; ++k) {
    for (int x = 0; x < img_w; ++x) {
      dk_img.data[k * img_w * img_h + y * img_w + x] = imgdata[y * setp + x * 3 + k] / 255.0f;
    }
  }
}

  好了,结束了,希望我的分享能对你的学习有一点帮助。


 【公众号传送】

《【经验分享】opencv Mat 转 darknet Image 数据结构》


logo_show.gif