图像基础、OpenCV入门2——变亮、变暗、日落、水印等

来源:互联网 发布:淘宝里的表情 编辑:程序博客网 时间:2024/06/06 16:30

调节图像亮度

调节原理:将像素值变小,全部色彩变暗;将像素值变大,全部色彩变亮。

#-*- coding: utf-8 -*-import cv2import numpy as npfn = "test1.jpg"if __name__ =='__main__':    print('loading... %s' % fn)    print (u'显示原图')    img = cv2.imread(fn)    cv2.namedWindow('source')    cv2.imshow('source',img)    print (u'正在处理中')    w = img.shape[1]    h = img.shape[0]    # 全部变暗    for xi in range(0,w):        for xj in range(0,h):            #将像素值整体减少,设为原像素值的20%            img[xj,xi,0]=int(img[xj,xi,0]*0.2)            img[xj,xi,1]=int(img[xj,xi,1]*0.2)            img[xj,xi,2]=int(img[xj,xi,2]*0.2)        # 显示进度条        if xi%10 ==0 :            print('.')    cv2.namedWindow('dark')    cv2.imshow('dark', img)    cv2.waitKey()    cv2.destroyAllWindows()

这里写图片描述

变亮的代码类似,把像素值整体变大即可,如:

            img[xj,xi,0]=int(img[xj,xi,0]*10.2)            img[xj,xi,1]=int(img[xj,xi,1]*10.2)            img[xj,xi,2]=int(img[xj,xi,2]*10.2)

图像日落效果

将蓝色值和绿色值设为原来的70%,红色值不变。

#-*- coding: utf-8 -*-import cv2import numpy as npfn = "test1.jpg"if __name__ =='__main__':    print('loading... %s' % fn)    print (u'显示原图')    img = cv2.imread(fn)    cv2.namedWindow('source')    cv2.imshow('source',img)    print (u'正在处理中')    w = img.shape[1]    h = img.shape[0]    for xi in range(0,w):        for xj in range(0,h):            img[xj,xi,0]=int(img[xj,xi,0]*0.7)            img[xj,xi,1]=int(img[xj,xi,1]*0.7)        # 显示进度条        if xi%10 ==0 :            print('.')    cv2.namedWindow('sunset')    cv2.imshow('sunset', img)    cv2.waitKey()    cv2.destroyAllWindows()

这里写图片描述

生成负片

#-*- coding: utf-8 -*-import cv2import numpy as npfn = "test1.jpg"if __name__ =='__main__':    print('loading... %s' % fn)    print (u'显示原图')    img = cv2.imread(fn)    cv2.namedWindow('source')    cv2.imshow('source',img)    print (u'正在处理中')    w = img.shape[1]    h = img.shape[0]    # 生成负片    b, g, r =cv2.split(img)    b = 255-b    g = 255-g    r = 255-r# 直接通过索引改变色彩分量    img[:,:,0] = b    img[:,:,1] = g    img[:,:,2] = r    cv2.namedWindow('nagative')    cv2.imshow('nagative', img)    cv2.waitKey()    cv2.destroyAllWindows()

这里写图片描述

加水印

#-*- coding: utf-8 -*-import cv2import numpy as npfn = "test1.jpg"if __name__ =='__main__':    print('loading... %s' % fn)    print (u'正在处理中')    img = cv2.imread(fn)    w = img.shape[1]    h = img.shape[0]    cv2.putText(img,"Hello World",(2,20),cv2.FONT_HERSHEY_PLAIN, 2.0, (0,0,0), thickness = 2)    cv2.namedWindow('watermark')    cv2.imshow('watermark', img)    cv2.waitKey()    cv2.destroyAllWindows()

这里写图片描述

原创粉丝点击