在系列文章海思AI芯片(Hi3519A/3559A)方案学习(十一)分析bgr文件格式 中有详细介绍bgr文件分量排列格式是bbbb...gggg....rrrr.... 但当时只提供代码来将bgr文件转换成Mat格式。本文来具体讲述其逆过程,即如何一张jpeg图片转换成bgr文件(其实前面文章的逆过程)。
本系列为华为海思海思AI芯片(Hi3519A/3559A)方案学习系列之十四,系列文章请见底部。
作者:ltshan139
读取jpg图片
使用opencv来读取jpeg图片,并resize成算法模型的网络size
Mat img = imread("D:/work/xxxx.jpg");
Mat image2;
if (img.empty())
{
printf("reading image file fails \n");
return 1;
}
//suppose network input size is 608x608
resize(img, image2, Size(608, 608));
转换成bgr文件
重点来了,将Mat里面bgrbgrbgr排列的数据变换为bgr文件里面的bbbb...gggg....rrrr...格式
fp = fopen("D:/work/xxx_608x608.bgr", "wb");
int step = image2.step;
int h = image2.rows;
int w = image2.cols;
int c = image2.channels();
for (int k = 0; k < c; k++) {
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
fwrite(&image2.data[i*step + j * c + k], sizeof(uint8_t), 1, fp);
}
}
}
fclose(fp);
验证
为了确认转换正确,可以用海思AI芯片(Hi3519A/3559A)方案学习(十一)分析bgr文件格式里面的代码将bgr文件转换成Mat并显示看是否正常。
版权声明:本文为CSDN博主「ltshan139」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/avideointerfaces/article/details/89931156
海思AI芯片系列文章
- 海思AI芯片(Hi3519A/3559A)(十三)在hi3519A ARM上运行yolov3模型
- 海思AI芯片(Hi3519A/3559A)方案学习(十二)移植opencv343到hi3519A
- 海思AI芯片(Hi3519A/3559A)方案学习(十一)分析bgr文件格式
- 海思AI芯片学习(十)将yolov3 darknet模型转换为caffemodel
- 海思AI芯片(Hi3519A/3559A)方案学习(九)wk格式的模型生成以及PC仿真
- 海思AI芯片(Hi3519A/3559A)方案学习(八)根文件系统运行遇到的两个问题
- 海思AI芯片(Hi3519A/3559A)方案学习(七)ext4根文件系统制作
- 海思AI芯片(Hi3519A/3559A)学习(六)No MMC device available和can't get kernel image两个问题的解决
- 海思AI芯片(Hi3519A/3559A)学习(五)SDK平台文档梳理 code
- 海思AI芯片(Hi3519A/3559A)学习(四)在3519A板子上运行sample code
- 海思Hi3519A/3559A(三)Ubuntu18.0.4上编译uboot和kernel
- 海思AI芯片(Hi3519A/3559A)方案学习(二)RuyiStudio安装
- 海思AI芯片(Hi3519A/3559A)方案学习(一)资料以及术语介绍
更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习。