图像jpg转.bgr二进制文件_海思开发

2023-11-19

作者:昌山小屋
来源: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数据,速度就快很多。
在这里插入图片描述
代码也是参考了博文的代码,根据自己的习惯和环境,做了一点修改,虽然是小的修改,但万一谁刚好需要就拿去用省的自己修改了。

  1. c改成c/++
  2. IplImage *改为Mat;
  3. widthstep
  4. 补充一点验证结果
  5. visual studio平台编译

代码如下,vs中创建项目,增加源文件cvt2bgr.cpp,配置好opencv头文件和路径,编译、运行。
结果验证:

  1. dog_bike_car.jpg, 768x576,代码中resize成300x300,生成dog_bike_car_300x300.bgr,大小263kb,和海思sample中提供大小一样也是263kb.
  2. horse_dog_car_person.jpg, 500x375, resize成224x224,生成horse_dog_car_person_224x224.bgr,大小147kb,和海思sample中提供大小一样也是147kb.
  3. 将转换好的.bgr,和海思sample提供的bgr,测试结果一样,说明转换正确,大胆拿去用。
    dog_bike_car.jpg
    在这里插入图片描述
#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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像jpg转.bgr二进制文件_海思开发 的相关文章

随机推荐