这里介绍:RGB图3个通道的提取、RGB图转灰度图、图片反转、图片亮度调整具体操作,需导入的库如下:
from skimage import exposure import cv2原图如下:
# 读取图片
lena = cv2.imread("lena.tif")
# 显示图片
cv2.imshow('lena', lena)
cv2.waitKey(0)
一、RGB图3个通道的提取
# RGB3个通道的提取
(B, G, R) = cv2.split(lena) #提取R、G、B分量,opencv读取顺序是BGR,所以提取顺序也是BGR
cv2.imshow("Red",R)
cv2.imshow("Green",G)
cv2.imshow("Blue",B)
cv2.waitKey(0)
结果如下,从左到右分别是:Red,Green,Blue
# RGB图转为灰度图
gray_lena = cv2.cvtColor(lena, cv2.COLOR_BGR2GRAY)
# 显示图片
cv2.imshow('gray_lena', gray_lena)
cv2.waitKey(0)
三、图片反转
# 图片反转
re_lena = 255 - lena # 图片中的像素值是0-255的整数,所以反转就是255减去每个位置的像素值
# 显示图片
cv2.imshow('re_lena', re_lena)
cv2.waitKey(0)
四、图片亮度调整
这里借助skimage库中的exposure函数来进行图像亮度的调整
如果gamma > 1,新图像比原图像暗
如果gamma < 1,新图像比原图像亮
# 亮度变换
lena_gam1 = exposure.adjust_gamma(lena, 2) #调暗
lena_gam2 = exposure.adjust_gamma(lena, 0.5) #调亮
cv2.imshow('lena_gam1', lena_gam1)
cv2.imshow('lena_gam2', lena_gam2)
cv2.waitKey(0)
结果如下:
总代码如下:
from skimage import exposure
import cv2
# 读取图片
lena = cv2.imread("lena.tif") # cv2 读Breast的方式为多维数组
# 显示图片
cv2.imshow('lena', lena)
cv2.waitKey(0)
# RGB3个通道的提取
(B, G, R) = cv2.split(lena)#提取R、G、B分量
cv2.imshow("Red",R)
cv2.imshow("Green",G)
cv2.imshow("Blue",B)
cv2.waitKey(0)
# RGB图转为灰度图
gray_lena = cv2.cvtColor(lena, cv2.COLOR_BGR2GRAY)
# 显示图片
cv2.imshow('gray_lena', gray_lena)
cv2.waitKey(0)
# 图片反转
re_lena = 255 - lena
# 显示图片
cv2.imshow('re_lena', re_lena)
cv2.waitKey(0)
# 亮度变换
lena_gam1 = exposure.adjust_gamma(lena, 2) #调暗
lena_gam2 = exposure.adjust_gamma(lena, 0.5) #调亮
cv2.imshow('lena_gam1', lena_gam1)
cv2.imshow('lena_gam2', lena_gam2)
cv2.waitKey(0)



