一、引言
当我们进行前期算法验证的时候,需要读取图片进行仿真,那么关键的一步就是如何加载图片进行测试。需要特别注意的,所有过程都是在HLS工具上实现的,相当于搭建了一个图像的处理平台,不过这个平台的输入源于软件,输出到软件上,后续中间FPGA算法模块的开发,是基于这个图像处理平台的。
方法: 使用openCV的一些函数,cvLoadImage函数加载图片。imread函数读取图片。视频流载入。外部摄像头载入。
Note:新建完工程,除了把源码添加到HLS工具中外,把对应要处理的图片或视频流都放在工程的test bench中。
本实验主要目的,是测试函数的功能,具体函数的使用,后续有机会搞openCV时,会慢慢补充。
二、cvLoadImage
cvLoadImage是openCV里的一个函数,原型:
IplImage* cvLoadImage( const char* filename, int iscolor(CV_LOAD_IMAGE_COLOR) )
1、解释。
filename:指定被读入文件的文件名,需要包含后缀。
flags:指定读入图片的颜色和深度。指定的颜色可将输入的图片转为3信道CV_LOAD_IMAGE_COLOR,单信道CV_LOAD_IMAGE_GRAYSCALE,或者保持不变CV_LOAD_IMAGE_ANYCOLOR。
2、使用。
cvLoadImage( filename, -1 ); // 默认读取图像的原通道数
cvLoadImage( filename, 0 ); // 强制转化读取图像为灰度图
cvLoadImage( filename, 1 ); // 读取彩色图
3、示例。
一个通过 cvLoadImage 函数读取图片显示的例子。
//方法1 cvLoadImage函数加载图片
IplImage* src = cvLoadImage(INPUT_IMAGE); // INPUT_IMAGE是具体的文件明,包含了后缀
IplImage* dst = cvCreateImage(cvGetSize(src), src->depth, src->nChannels);//获取原始图像大小
AXI_STREAM src_axi, dst_axi;
IplImage2AXIvideo(src, src_axi);
//image_filter(src_axi, dst_axi, src->height, src->width);
AXIvideo2IplImage(src_axi, dst);
cvSaveImage(OUTPUT_IMAGE, dst);
cvShowImage( "test_1080p.bmp",dst);
cvShowImage( "result_1080p",dst);
cvReleaseImage(&src);
cvWaitKey();

本文介绍了使用OpenCV在HLS工具上加载图像的方法,包括cvLoadImage和imread函数的应用,以及视频流和摄像头数据的读取。文章还提供了详细的代码示例。
最低0.47元/天 解锁文章
1230

被折叠的 条评论
为什么被折叠?



