vivado HLS算法分析

HLS算法分析

HLS中使用C/C++语言作为开发语言,通过高层次综合将其转为IP核,省去了使用硬件语言的开发难度

该项目调用HLS中的hls_opencv视频库,对图像进行处理。

 

使用HLS要完成的目标:

针对输入图像进行灰度处理,然后做帧差处理,在对帧差图片进行二值化。

最后生成IP核,再使用vivado工具。完成图像处理的硬件加速过程。

 

 

针对上述目标,设计如下算法:

1):输入图像一和图像二,两个输入的InputImage ,使用HLS_OPENCV库将图像转换为Mat

    hls::AXIvideo2Mat(INPUT_STREAM1, img_01);

    hls::AXIvideo2Mat(INPUT_STREAM2, img_02);

2):对两幅图像做RGB2GRAY处理,将RGB图像转换为灰度图,为帧差做处理

hls::CvtColor<HLS_RGB2GRAY>(img_01, img_1);

    hls::CvtColor<HLS_RGB2GRAY>(img_02, img_2);

3):对两幅灰度图片做帧差

    hls::AbsDiff(img_1, img_2, img_4);

4):对帧差图片做二值化处理,二值化阈值使用OTSU自适应算法

    hls::Threshold(img_4,img_5, Thresh,255,HLS_THRESH_BINARY);

    参数说明:                                      

    Thresh为阈值,255为二值最大值,HLS_THRESH_BINARY 详细见文档

5):将Mat数组转为视频流输出

    hls::Mat2AXIvideo(img_5, OUTPUT_STREAM);

 

 

针对上述步骤,需提前设定好各类参数,包括:

    图像的尺寸

    图像的输入输出

    输入流的位宽

    输出流的位宽

    图像Mat数组的大小,图像的通道问题

   

猜你喜欢

转载自blog.csdn.net/lichen_6398/article/details/81660843
今日推荐