|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
最近在用VIVADO HLS做视频处理相关的C代码转换到HDL代码相关工作,参考了XILINX的XAPP1167。但是发现一个问题,就是可综合的top.cpp中使用的AXIvideo2Mat和Mat2AXIvideo函数将ap_axiu<w,1,1,1>类型的AXI4 video stream转换为hdl::Mat,然后才能调用hdl域的Sobel,Scale等函数实现相关图像处理操作。查找AXIvideo2Mat函数和Mat2AXIvideo函数的定义,只发现只能处理ap_axiu即无符号类型。如果我的图像处理过程需要浮点运算,比如图像像素为32FC1类型,且滤波器系数也为浮点类型,这两个接口函数是不是就用不了了?
我想改用cvMat2hlsMat和hlsMat2cvMat这2个接口函数,发现用以下处理方法来对cv::Mat A进行一些简单处理:
hls::Mat<H, W, HLS_32FC1> imgin;
cv::Mat TAA;
cvMat2hlsMat(A,imgin);
hlsMat2cvMat(imgin,TAA);
都会报错
Assertion failed: img && img->imageData && (img->nChannels == HLS_MAT_CN(T)) && "Image must be valid and match the number of channels of the Mat.", file D:/Xilinx/Vivado_HLS/2013.4/include/hls_opencv.h, line 75
This application has requested the Runtime to terminate it in an unusual way.
请教用HLS做过视频处理的大神,到底用什么方法处理有符号类型的像素的图像,并且转换到hls::Mat类型,从而能利用HLS里面的video函数呢?或者有相关的例子推荐给我呢?谢谢! |
|