前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >图像明暗调整

图像明暗调整

作者头像
裴来凡
发布2022-05-29 09:51:37
发布2022-05-29 09:51:37
35800
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
import cv2
import numpy as np
import math
img_path="C:/Users/xpp/Desktop/Lena.png"
img=cv2.imread(img_path) 
gray_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img_shape=gray_img.shape
height,width=img_shape[0],img_shape[1]
size=gray_img.size
hist=cv2.calcHist([gray_img],[0],None,[256],[0,256])
img=cv2.imread(img_path)
img2=cv2.imread(img_path)
def updateAlpha(x):
    global alpha, img, img2
    alpha=cv2.getTrackbarPos('Alpha','image')
    alpha=alpha*0.01
    img=np.uint8(np.clip((alpha*img2+beta),0,255))
def updateBeta(x):
    global beta, img1, img2
    beta=cv2.getTrackbarPos('Beta','image')
    img1=np.uint8(np.clip((alpha*img2+beta),0,255))
a=0
ma=0
reduce_matrix=np.full((height,width),128)
shift_value=gray_img-reduce_matrix
shift_sum=sum(map(sum,shift_value))
da=shift_sum/size
#计算偏离128的平均偏差
for i in range(256):
    ma+=(abs(i-128-da)*hist[i])
m=abs(ma/size)
#亮度系数
k=abs(da)/m
print(k)
if k[0]>1:
    if da>0:
        print("过亮")
    else:
        print("过暗")
else:
    print("亮度正常")
cv2.namedWindow('image')
cv2.createTrackbar('Alpha','image',0,300,updateAlpha)
cv2.createTrackbar('Beta','image',0, 255,updateBeta)
cv2.setTrackbarPos('Alpha','image',100)
cv2.setTrackbarPos('Beta','image',10)
while (True):
    cv2.imshow('image',img)
    if cv2.waitKey(1)==ord('q'):
        break
cv2.destroyAllWindows()

亮度正常

算法:图像明暗调整是检测画面亮度和调节画面亮度与对比度。数字图像 f(x,y) = i(x,y) r(x,y) ,如果灰度值在[0,255]之间,则f值越接近0,亮度越低,f值越接近255,亮度越高。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档