伪彩色增强
由于人眼对彩色的分辨能力远远高于对灰度的分辨能力,所以将灰度图像转化成彩色表示,就可以提高对图像细节的辨别力。
基本原理:将黑白图像或者单色图像的各个灰度级匹配到彩色空间中的一点,从而使单色图像映射成彩色图像。对黑白图像中不同的灰度赋予不同的彩色。
实现方法:亮度切割法、灰度级彩色变换法、频域滤波法
#亮度切割法的简单代码实现
import cv2
import numpy as np
# 读入灰度图片
gray=cv2.imread('lenaGray.png',cv2.IMREAD_GRAYSCALE)
# 获得gray的size
m,n=gray.shape
# 创建新的同大小的三通道图
img_new=np.zeros((m,n,3),np.uint8)
for i in range(gray.shape[0]):
for j in range(gray.shape[1]):
#根据不同灰度级赋予彩色图像不同的值,这里就简单写一下,看懂就行
if gray[i,j]<128:
img_new[i,j]=[255,0,0]
else:
img_new[i,j]=[0,0,255]
cv2.imshow('img',img_new)
cv2.waitKey(0)
cv2.destroyAllWindows()
这里我们直接调用cv2库中函数实现亮度切割
void cv::applyColorMap(InputArray src,OutputArray dst,int colormap)
src The source image
dst The result is the colormapped source image
colormap The colormap to apply
cv::ColormapTypes {
cv::COLORMAP_AUTUMN = 0,
cv::COLORMAP_BONE = 1,
cv::COLORMAP_JET = 2,
cv::COLORMAP_WINTER = 3,
cv::COLORMAP_RAINBOW = 4,
cv::COLORMAP_OCEAN = 5,
cv::COLORMAP_SUMMER = 6,
cv::COLORMAP_SPRING = 7,
cv::COLORMAP_COOL = 8,
cv::COLORMAP_HSV = 9,
cv::COLORMAP_PINK = 10,
cv::COLORMAP_HOT = 11,
cv::COLORMAP_PARULA = 12,
cv::COLORMAP_MAGMA = 13,
cv::COLORMAP_INFERNO = 14,
cv::COLORMAP_PLASMA = 15,
cv::COLORMAP_VIRIDIS = 16,
cv::COLORMAP_CIVIDIS = 17,
cv::COLORMAP_TWILIGHT = 18,
cv::COLORMAP_TWILIGHT_SHIFTED = 19,
cv::COLORMAP_TURBO = 20,
cv::COLORMAP_DEEPGREEN = 21
}
详情可前往OpenCV: ColorMaps in OpenCV查看
import cv2
# 读入灰度图片
gray=cv2.imread('lenaColor.tiff',cv2.IMREAD_GRAYSCALE)
cv2.imshow('gray',gray)
autumn=cv2.applyColorMap(gray,1)
cv2.imshow('autumn',autumn)
bone=cv2.applyColorMap(gray,2)
cv2.imshow('bone',bone)
jet=cv2.applyColorMap(gray,3)
cv2.imshow('jet',jet)
cv2.waitKey(0)
cv2.destroyAllWindows()