图像对比度调整可以由一个模块contrast adjustment 完成,参数有输入范围和输出范围,计算过程由以下公式决定

图像对比度调整的simulink仿真总结-LMLPHP

解释一下,当input<=low_in的时候输出的值是low_out+low_out;当low_in<input<high_in的时候输出的是low_out+图像对比度调整的simulink仿真总结-LMLPHP;当input>high_in的时候输出的是low_out+high_out;

根据这个原理,做出了自己的simulink模块,如下

图像对比度调整的simulink仿真总结-LMLPHP

我用的图片是640*1024的,所以采样之后首先reshape成1维的之后unbuffer使数据按sample形式输出而非frame,之后便是数据处理部分,用了if else 结构 设定的low_in是20,high_in是235.如果输入小于20就输出0,如果输入大于235就输出255,如果输入在20-235之间就按照如上所示的公式搭建模型,最后再buffer,655360个数据为1帧,输出再reshape成640*1024就可以输出了,需要注意的是 要想unbuffer从开始就有数据,必须将simulink的运行模式设置为单任务运行模式。

中间的if else 结构 也可以用matlab function block 代替,只需写几行代码即可。

处理前后两张图对比

图像对比度调整的simulink仿真总结-LMLPHP

图像对比度调整的simulink仿真总结-LMLPHP

05-08 14:56