OpenCV学习第四课——图像的加法、类型转换、缩放、翻转、融合

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()

 

posted @ 2020-09-27 15:58  PY憨  阅读(213)  评论(0编辑  收藏  举报