[C#]OpenCvSharp改变图像的对比度和亮度

目的

访问像素值mat.At<T>(y,x)

用0初始化矩阵Mat.Zeros

饱和操作SaturateCast.ToByte

亮度和对比度调整

g(x)=αf(x)+β

用α(>0)和β一般称作增益(gain)和偏置(bias),分别控制对比度和亮度

把f(x)看成源图像像素,把g(x)看成输出图像像素

g(i,j)=α⋅f(i,j)+β

其中,i和j表示像素位于 第i行 和 第j列(左上角为第0行、第0列)

相关函数

Mat.Zeros:初始一个所有值为0的矩阵

Mat new_Image1 = Mat.Zeros(image.Size(), image.Type());

SaturateCast.ToByte:饱和操作,当<0时,返回0,当>255时,返回255,其它返回原值

return SaturateCast.ToByte(alpha * source + beta);

Mat.ConvertTo: g(i,j)=α⋅f(i,j)+β 转化

image.ConvertTo(new_Image2, image.Type(), alpha, beta);

SaturateCast.ToByte与ConvertTo的差异

使用SaturateCast.ToByte与ConvertTo操作的结果不完全一致。

如计算85*0.7+0.0=59.499999999999993D, SaturateCast.ToByte的结果为59,而ConvertTo的结果为60。

【效果展示】

【测试环境】

vs2019,netframework4.7.2,opencvsharp4.8.0

【演示源码下载】 

https://download.csdn.net/download/FL1623863129/89079503

### 回答1: OpencvSharp 是开源的计算机视觉领域的 C#语言封装库,可以用于图像处理、图像分析、模式识别等领域。扫描图片对比度图像处理的一个重要应用之一。对比度是指图像中明暗色调变化的大小,即图像中最亮与最暗像素的强度之差。对比度越大,图像中暗部越暗,亮部越亮,反之对比度越小,图像中暗部越明亮,亮部越暗。下面我们来了解 OpencvSharp 如何扫描图片对比度OpencvSharp 中提供了很多用于计算对比度的函数,其中最常用的是 cv::equalizeHist 函数。该函数会将输入图像的直方图均衡化,从而增加图像对比度。具体使用方法如下: 1. 载入图像:Mat img = Cv2.ImRead("image.jpg"); 2. 转为灰度图像:Mat grayImg = new Mat(); Cv2.CvtColor(img, grayImg, ColorConversionCodes.BGR2GRAY); 3. 直方图均衡化:Mat histImg = new Mat(); Cv2.EqualizeHist(grayImg, histImg); 4. 显示图像:Cv2.ImShow("Histogram Equalization", histImg); 通过上述方法,就可以扫描图片对比度并对其进行处理。此外,还可以通过调整对比度参数,更加精细地控制图像对比度。 ### 回答2: OpenCVSharp是一个C#语言的开源计算机视觉库,它提供了许多图像处理和计算机视觉相关的函数和工具。扫描图像对比度是一个常见的图像处理需求,OpenCVSharp提供了几种不同的方法来检测和增强图像对比度。 一种简单的方法是使用直方图均衡化方法。它通过重新分配图像像素值来增强图像对比度OpenCVSharp提供了一个名为EqualizeHist的函数,可以用于执行直方图均衡化操作。 另一种更复杂的方法是使用自适应直方图均衡化方法来增强图像对比度。这种方法是在局部图像块上执行直方图均衡化操作,以保留图像的局部对比度和细节。OpenCVSharp还提供了一个名为CLAHE的函数,可以用于执行自适应直方图均衡化操作。 除了直方图均衡化方法外,还可以使用一些其他的算法和技术来增强图像对比度,如增强锐度、彩色平衡等。无论采用何种方法,都需要根据具体应用场景选择最合适的算法和参数,以获得最佳的对比度增强效果。 ### 回答3: OpenCvSharp是一个开源计算机视觉库,用于处理图像和视频的编程库,它提供了丰富的图像处理功能,包括的对比度调整。要用OpenCvSharp图片对比度,首先需要加载图像,最好是以灰度方式加载,以便更方便地进行对比度调整。然后可以使用equalizeHist()函数对图像进行直方图均衡化来增加对比度。该函数将把灰度图片的像素值分布均衡化到较宽的像素值范围内,进而增加图像对比度。要调整对比度的范围,可以使用convertScaleAbs()函数来调整图像亮度对比度值。使用类似于“Mat dst = src⋅alpha+beta”的公式,可以调整对比度亮度值。在该公式中,alpha和beta是任选参数,用于调整对比度亮度,src是源图像,dst是目标图像。除此之外,还可以使用Matplotlib库来可视化图像对比度的变化,并评估调整结果。OpenCvSharp的函数和类库非常清晰和易于使用,可以根据需要选择合适的函数和方法进行图像对比度调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值