OpenCV教程——调整图像亮度与对比度,绘制形状和文字
调整图像亮度与对比度
1.图像变换
图像变换通常有两种方式:
- 像素变换:点操作
- 邻域操作:区域
调整图像亮度和对比度属于像素变换(点操作)。
2.调整图像亮度与对比度
可以通过以下公式调整图像的亮度和对比度:
g(i,j)=αf(i,j)+β
通常情况下有α>0
,β
是增益变量。
👉对比度:
对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小。
因此公式中的α
用来调节对比度,而β用来调节亮度。如果两个像素点的像素值在α=1时分别是1和2,两点差值为1;当α=10时,两点像素值分别为10和20,两点差值为10,对比度增大。
绘制形状和文字
1.点和颜色的表示
1.1.点的表示
cv::Point
可以表示平面上的一个点。有两种构造方法:
👉方法一:
| |
👉方法二:
| |
1.2.颜色的表示
cv::Scalar
表示四个元素的向量。
可以用Scalar(b,g,r)
表示RGB图像的颜色。
2.几何形状的绘制
- 线:
cv::line
。 - 椭圆:
cv::ellipse
。 - 矩形:
cv::rectangle
。 - 圆:
cv::circle
。 - 填充:
cv::fillPoly
。
3.添加文字
向图像中添加文字:cv::putText
。
4.使用OpenCV生成随机数
使用OpenCV生成随机数:cv::rng
。
- 生成高斯随机数:
rng.gaussian(double sigma)
。 - 生成均匀分布随机数:
rng.uniform(int a,int b)
。
5.waitKey()的作用
‼️waitKey()
仅对窗口机制起作用。
OpenCV中对waitKey()
函数的定义:
| |
⚠️参数为等待时间(ms)。如果在此期间有按键按下,则立即结束并返回所按按键的ASCII码,否则返回-1。
⚠️如果delay=0
则无限等待下去,直到有按键按下。