图像jpg转.bgr二进制文件_海思开发
作者:昌山小屋
来源:CSDN
原文:https://blog.csdn.net/ChuiGeDaQiQiu/article/details/84945901
版权声明:本文为博主原创文章,转载请附上博文链接!
参考为毛我要干这件事,把一张jpg图片转成bgr(注意顺序是bgr)二进制文件?最近在弄华为Hi3519AV100开发板上的一些深度学习的样例程序,没想到它的输入文件不是普通的jpg,而是bgr格式的二进制文件,所以不是我闲得蛋疼。还别说,这样确实是大大节省了空间。我一张3.8M的测试文件(test.jpg),转成二进制后为276K。
以上是引用的博文。
补充一点,海思提供windows Ruyi studio,仿真测试时,可以用jpg bmp等图片类型,但是需要转换成raw数据,速度特别慢,如果提前手动转换好,再拿去仿真测试,直接读入raw数据,速度就快很多。
代码也是参考了博文的代码,根据自己的习惯和环境,做了一点修改,虽然是小的修改,但万一谁刚好需要就拿去用省的自己修改了。
- c改成c/++
- IplImage *改为Mat;
- widthstep
- 补充一点验证结果
- visual studio平台编译
代码如下,vs中创建项目,增加源文件cvt2bgr.cpp,配置好opencv头文件和路径,编译、运行。
结果验证:
- dog_bike_car.jpg, 768x576,代码中resize成300x300,生成dog_bike_car_300x300.bgr,大小263kb,和海思sample中提供大小一样也是263kb.
- horse_dog_car_person.jpg, 500x375, resize成224x224,生成horse_dog_car_person_224x224.bgr,大小147kb,和海思sample中提供大小一样也是147kb.
- 将转换好的.bgr,和海思sample提供的bgr,测试结果一样,说明转换正确,大胆拿去用。
#include <unistd.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string>#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"using namespace cv;typedef unsigned char U_CHAR;int main()
{const char *filename = "dog_bike_car.bmp";const char *outname = "dog_bike_car.bgr";int flag = 1;cv::Mat img = cv::imread(filename);if (!img.data){printf("read image error\n");return -1;}//缩放resize(img, img, Size(300, 300)); //224x224//imshow("img",img);//waitKey(0);U_CHAR *data = (U_CHAR*)img.data;int step = img.step;printf("Step: %d, height: %d, width: %d\n",step, img.rows, img.cols);FILE *fp = fopen(outname, "wb");int h = img.rows;int w = img.cols;int c = img.channels();for (int k = 0; k<c; k++) {for (int i = 0; i<h; i++) {for (int j = 0; j<w; j++) {fwrite(&data[i*step + j*c + k], sizeof(U_CHAR), 1, fp);}}}fclose(fp);return 0;
}
图像jpg转.bgr二进制文件_海思开发相关推荐
- 魔百盒CM201-2_YS、ZG、CH、(emmc,nand)_海思3798mv300_全套刷机固件
魔百盒CM201-2_YS.ZG.CH.(emmc,nand)_海思3798mv300_全套刷机固件 YS易视腾代工.ZG朝哥代工.CH长虹代工 固件说明: 本固件为移动魔百和CM201-2运营商盒子 ...
- 魔百盒M301H(ZN、JL、CW、SM代工)_海思3798mv300_全套刷机固件
魔百盒M301H(ZN.JL.CW.SM代工)_海思3798mv300_全套刷机固件 ZN:兆能.JL九联.CW创维.SM数码 固件说明: 本固件为移动魔百和M301h运营商盒子主控芯片为海思3798 ...
- 海思芯片怎么使用tde给qt加速_海思芯片图形层的开发指南与方案
海思开发指南: 1:图形层界面的开发:图形二维加速器(TDE),硬件对图形图像的处理 HiFB用于管理叠加图形层:Hisilicon Framebuffer在framebuffer的基础上增加层间co ...
- 海思开发板遇到的问题启发性的链接
网络问题 Failed to start Raise network interfaces after upgrading to 16.04 networking - Failed to start ...
- 【华为出品】物联网全栈开发实战营第2期来啦!送海思开发板
物联网一直在改变我们生活的方方面面.可穿戴设备有助于监控我们的偏好.习惯和健康状况.智能家居设备可提高家居的舒适度.安全性和便利性.城市利用连接的数字设备收集的海量数据(数十亿个)来改善城市规划.制造 ...
- 海思开发板海图科技测评,海图海思开发板怎么样
关于海思开发板海图科技的测评,相关关键字:hi3516,hi3519,hi3531,hi3535,hi3536,hi3559,hi3403 最近网络上关于海图的海思开发板宣传的沸沸扬扬,很多人都想要一 ...
- 开源海思开发板(HIVIEW开发板)
大家好,今天给大家分享一个有料的海思开发板,可用于快速构建产品样机. HIVIEW简介: HIVIEW是个小而专业的设计公司(海思软/硬件设计能力13年以上) 我们的目标 **以开放的软/硬件 ...
- 海思开发板FFmpeg+Nginx,推流RTMP播放(优秀教程收集+实操整理)
海思开发板FFmpeg+Nginx推流RTSP播放(优秀教程收集+实操整理) 安装FFmpeg及移植 FFmpeg编译问题收录: static declaration of 'cbrt' follow ...
- 海思开发板上添加ftp功能
海思开发板上添加ftp功能 前言: 本博客是基于海思3520Dv100开发,编译工具链为:arm-hisiv100nptl-linux-gcc 1.下载stupid-ftpd-1.5beta.tar. ...
最新文章
- 英国最新报告:40% AI公司其实没用任何AI技术
- go swagger
- Java 多态的简单介绍.
- 在Dialog中实现下拉框效果并对下拉框赋自定义的值
- 【HDU - 6186】CS Course(按位与,按位或,按位异或的区间统计,二进制拆位)
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- 中移4G模块-ML302-OpenCpu开发-2-MQTT连接阿里云
- CentOS安装MySQL及其使用(总结整理)
- 拓端tecdat|SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据
- android拉勾轮播,拉勾网顶部轮播图的实现(一)以及简单闭包的应用
- 游戏开发入门如何点亮技术树?
- 读书笔记 · AI产品经理的工作流程
- 入手华为云学生机体验
- 自适应增强算法Adaboost——前人栽树后人乘凉
- 印刷ERP解决方案推荐
- C语言编程核心要点,男人看了沉默,女人看了流泪
- 计算机本科毕业论文要求,计算机科学与技术学院本科毕业设计(论文)规范(试行)...
- 笔记本电脑电池的保养和优化
- 利用scp 在linux之间传输文件
- 构建三维动画的五大设计软件,你最pick谁?