我在 vivado hls 上实现了一个图像处理算法,作为优化的一部分,我试图将浮点表示更改为定点表示。
这是出错的部分
#include <ap_fixed.h>
unsigned char win[3][3];
typedef ap_ufixed<11,8> fix;
struct pixel_f
{
fix r;
fix g;
fix b;
};
pixel_f new_pix;
.
.
.
.
.
new_pix.r = ((fix)(win[1][0] + win[1][2]) / 2)+0.5;
当我尝试执行它时,它给了我一个错误说
demosiac_core.cpp:16:49: error: ambiguous overload for 'operator+' (operand types are 'ap_fixed_base<11, 8, false, (ap_q_mode)5u, (ap_o_mode)3u, 0>::RType<32, 32, true>::div {aka ap_fixed<12, 9, (ap_q_mode)5u, (ap_o_mode)3u, 0>}' and 'double')
new_pix.r = ((fix)(win[1][0] + win[1][2]) / 2)+0.5;
有人可以帮助我提出与为什么会出错以及可以做些什么来完成这项工作有关的任何建议吗?
提前致谢,