如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
python通过opencv调整图片亮度和对比度
对图片的处理过程处理中,调整对比度和亮度是基本的要求,方法有很多,
比如亮度可以转换颜色空间调整亮度值,对比度也可以有线性和非线性方法,
这里是最简单的线性方法。
工具/原料
- opencv3 python3
- pycharm win7环境
方法/步骤
本文的亮度对比度是线性的方法,其实就是初中数学的
线性函数y= kx b方法。
写的专业一点:Y(x,y) = k*X(x,y) bX(x,y)表示图像(x行,y列)颜色值
Y(x,y)表示目标图像(x行,y列)颜色值
系数k是变换倍数(k>0)代表对比度系数b是亮度偏置
根据百度百科对比度的解释:
对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小。
上代码:
import cv2 as cvimport numpy as npimport copyimport randomfrom PIL import ImageStat #ImageStatimg = cv.imread('c:\\meiping1.png')cv.imshow('img', img)rows, cols, channel = img.shapedst = img.copy()
生成一幅图像并复制一份拷贝 防止数据影响。
一般情况
此处a代表 系数k 对比度
b是亮度偏置
一般 a取值 0--3 不宜太大。
a = 1.3
b = 3
for i in range(rows):
for j in range(cols):
for c in range(3):
color = (float)img[i, j][c] * a b
if color > 255:
dst[i, j][c] = 255
elif color 0:
dst[i, j][c] = 0
cv.imshow('dst', dst)
调整参数 a = 0.5 b = 3 不变
可以看出 图片变暗了很多 说明有效果!
a = 1.3
b = 3
for i in range(rows):
for j in range(cols):
for c in range(3):
color = (float)img[i, j][c] * a b
if color > 255:
dst[i, j][c] = 255
elif color 0:
dst[i, j][c] = 0
cv.imshow('dst', dst)
调整参数 a = 0.5 b = 80
可以看出 图片变亮了但没有像调整对比度那么快的变化率 说明有效果!
缺点他是整体变量,类似有一层白雾。
a = 1.3
b = 80
for i in range(rows):
for j in range(cols):
for c in range(3):
color = (float)img[i, j][c] * a b
if color > 255:
dst[i, j][c] = 255
elif color 0:
dst[i, j][c] = 0
cv.imshow('dst', dst)
小结:
对比度不宜过大,线性调整的方法是一种比较简单的方法,不太适合复杂场景的对比度设置和亮度调整,但简单易用。
通过y=kx b实现 对比度亮度调节
最后给出一个
对比度a = 2 亮度 b=10的图片可以看出图片变化很剧烈。
注意事项
- 对比度系数不要过大 一般为 0--3
- 作为一种线性方法 不太适合复杂场景的对比度设置和亮度调整
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: python
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 351 python
- 详细阅读