FPGA图像处理12_常用算法_饱和度调节

该博客介绍了在FPGA上实现简单饱和度调节算法的过程。通过计算RGB三通道的最大值和最小值,根据饱和度系数进行像素值调整。算法在sysgen中使用浮点数确保精度,并在输出前转换为无符号整数。文中展示了正负饱和度系数对图像效果的影响,并提供了仿真结果。
饱和度调节

饱和度调整的算法很多,基本上是越复杂的算法,调整后的图像视觉效果越好。

由于FPGA 不善长复杂的浮点运算,另一方面由于本文定位于基本的图像处理算法,此处只选择一种比较简单的饱和度算法。

设当前输入像素值位宽为 8,RGB 三通道数值为 r、g、b,三个数值间最大值为 max,最小值为 min。

如果 max=minmax=minmax=min,则当前像素点不用调节,直接输出原像素值。

v=max+minv=max+minv=max+min,则有:
s={ max−minmax+minv&lt;255max−min255−max+255−minv≥255 s=\begin{cases} \frac{max-min}{max+min}&amp;v&lt;255\\ \frac{max-min}{255-max+255-min}&amp;v\geq255 \end{cases} s={ max+minmaxmin255max+255minmaxminv<255v255
设饱和度调节系数为 saturation,范围 -1.0~1.0。

如果 saturation≤0saturation\leq0saturation0
rout=max+min2+(rin−max+min2)×(1+saturation)gout=max+min2+(gin−max+min2)×(1+saturation)bout=max+min2+(bin−max+min2)×(1+saturation) r_{out}=\frac{max+min}{2}+(r_{in}-\frac{max+min}{2})\times(1+saturation)\\ g_{out}=\frac{max+min}{2}+(g_{in}-\frac{max+min}{2})\times(1+saturation)\\ b_{out}=\frac{max+min}{2}+(b_{in}-\frac{max+min}{2})\times(1+saturation) rout

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值