OpenCV#10 brightness亮度contrast对比度调节

内置程序调节进度条会产生宽度或高度为负情况,将代码改为rect即可正常运行,示例如下:

 rect.Top = histogramImage.Rows;
                        rect.Left = j * binW;
                        rect.Width = binW;
                        rect.Height = (int)(scaledHistogram.Get<float>(j));
                        histogramImage.Rectangle(
                           rect,
                           color,
                           -1);

程序主要函数和运行逻辑分析

亮度和对比的数值在0-200之前,

调节后以100为0点设置正负,根据正负情况求参数,代码如下:

if (contrast > 0)
            {
                double delta = 127f * contrast / 100f;
                alpha = 255f / (255f - delta * 2);
                beta = alpha * (brightness - delta);
            }
            else
            {
                double delta = -128f * contrast / 100;
                alpha = (256f - delta * 2) / 255f;
                beta = alpha * brightness + delta;
            }

然后调用ConvertTo函数实现变换和显示工作。

src.ConvertTo(modifiedSrc, MatType.CV_8UC3, alpha, beta);

需要注意的是,程序应该是可以输出直方图相关参数的,运行后的确是有一个histogram窗口,但窗口内容为空,由于暂时没有相对如何应用,先不修复这个bug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健忘的松鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值