1、图像的加法
import numpy as np
import cv2
a = cv2.imread("E:\image\lena256.bmp")
b = a
add1 = a + b # 直接使用加法 会出现像素大于255
add2 = cv2.add(a, b) # add()方法 会将像素控制在最大值255的范围内
cv2.imshow("original", a)
cv2.imshow("add1", add1)
cv2.imshow("add2", add2)
cv2.waitKey()
cv2.destroyAllWindows()
2、图像的类型转换
# coding=utf-8
import cv2
"""
图像类型转换,比如彩色图像转换为灰度图像
BGR图像转换为RGB
灰度图像转换为BGR 等等
"""
# 彩色转换为灰度
# def zh_ch(string):
# return string.encode("gbk").decode(errors="ignore")
#
#
# a = cv2.imread("E:\image\lenacolor.png")
# b = cv2.cvtColor(a, cv2.COLOR_BGR2GRAY) # COLOR_BGR2GRAY 将彩色转换为灰度
#
# cv2.imshow(zh_ch('彩色图像'), a)
# cv2.imshow(zh_ch('转换后的图像'), b)
# cv2.waitKey()
# cv2.destroyAllWindows()
# BGR图像转换为RGB
# a = cv2.imread("E:\image\lenacolor.png")
# b = cv2.cvtColor(a, cv2.COLOR_BGR2RGB) # COLOR_BGR2RGB 将BGR转换为RGB
#
# cv2.imshow("BGR", a)
# cv2.imshow('RGB', b)
# cv2.waitKey()
# cv2.destroyAllWindows()
# GRAY(灰度图像)转换为BGR
a = cv2.imread("E:\image\lena256.bmp",cv2.IMREAD_UNCHANGED) # 灰度图像 的时候要加上cv2.IMREAD_UNCHANGED
b = cv2.cvtColor(a, cv2.COLOR_GRAY2BGR) # 灰度转换为BGR
cv2.imshow("GRAY", a)
cv2.imshow('BGR', b)
cv2.waitKey()
cv2.destroyAllWindows()
3、图像的缩放
"""
语法格式
dst = cv2.resize(src,dsize,fx,fy)
src:处理什么图片就写什么
dsize:缩放大小
fx,fy:缩放大小
b = cv2.resize(a,(122,122))
b=cv.resize(a,None,fx=0.5,fy=0.7)
dsize fx,fy 设置一个即可
"""
import cv2
a = cv2.imread("E:\image\lenacolor.png")
# b=cv2.resize(a,(200,100))
# cv2.imshow("original",a)
# cv2.imshow("resize",b)
# cv2.waitKey()
# cv2.destroyAllwindows()
"""
一般情况下用这种方法,按比例缩放
"""
rows,cols,chn=a.shape # 获得行列通道
print(rows,cols)
b=cv2.resize(a,(round(cols*0.5),round(rows*1.2))) # 缩放 先写列 在写行
cv2.imshow("original",a)
cv2.imshow("resize",b)
cv2.waitKey()
cv2.destroyAllWindows()
4、图像翻转
"""
语法:dst=cv2.flip(src,flipCode)
flipCode=0 以X轴为对称轴上下翻转
flipCode>0 以Y轴为对称轴左右翻转
flipCode<0 以x,y轴为对称轴上下左右翻转
范例:dst = cv2.flip(src,1)
"""
import cv2
a=cv2.imread("E:\image\lenacolor.png")
b=cv2.flip(a,0)
c=cv2.flip(a,1)
d=cv2.flip(a,-1)
cv2.imshow("original",a)
cv2.imshow("=0",b)
cv2.imshow(">0",c)
cv2.imshow("<0",d)
cv2.waitKey()
cv2.destroyAllWindows()
5、图像融合
# 图像融合 可以使两个模糊的图像生成一个清晰的图像
import cv2
a = cv2.imread("E:\image\lena.bmp")
b = cv2.imread("E:\image\add\boat.bmp")
# dst=addWeighted(src1, alpha, src2, beta, gamma)
# dst=src1*alpha + src2*beta + gamma gamma为亮度调节值,不可省略。
result=cv2.addWeighted(a,0.5,b,0.5,0)
cv2.imshow("boat",b)
cv2.imshow("lena",a)
cv2.imshow("result",result)
cv2.waitKey()
cv2.destroyAllWindows()