1、理论基础知识:1)伪彩色增强,对灰度进行颜色划分。由一定的映射关系求R,G,B,组成该点的彩色值;还有空域转频域再转空域和 3)光滑非线性的变换函数的方法,都太复杂,具体请度娘。一下是百度得到的伪彩色经典图形和转换函数
2、import cv2 as cvimport numpy as npimage = cv.imread('c:\\meiping1.png')cv.imshow('image',image)grayImg = cv.cvtColor(image, cv.COLOR_BGR2GRAY)先使用imread加载图片cvtColor转换为 灰度图。
3、根据经验公式编写SetcolorR 完成Red颜色转换def SetcolorR(gray): if gray < 127: return 0 elif gray > 191: return 255 else: return 4 * gray - 510
4、根据经验公式编写SetcolorG完成Green颜色转换def SetcolorG(gray): if (gr锾攒揉敫ay <= 63): return 254 - 4*gray elif (gray >= 64 and gray <= 127): return (gray-191)*4 - 254 elif (gray >= 128 and gray <= 191): return 255 elif (192 <= gray and gray <= 255): return (1022 - 4*gray)
5、根据经验公式编写SetcolorB完成Blue颜色转换def SetcolorB(gray): if (0 <= gray and gray <= 63): return 255 elif (64 <= gray and gray <= 127): return 510 - 4*gray elif (128 <= gray and gray <= 255): return 0
6、进行TransColor思凳框酣转换先np.zeros构造彩色矩阵然后每个像素按照经验公式进行转换!def TransColor(image): rows = image.shape[0] 艘早祓胂cols = image.shape[1] print(rows, cols) Color = np.zeros((rows, cols, 3), np.uint8) 使用zeros构造彩色矩阵 这种方法很好 很常用 for i in range(rows): for j in range(cols): r = SetcolorR(image[i,j]) g = SetcolorG(image[i,j]) b = SetcolorB(image[i,j]) Color[i, j, 0] = r Color[i, j, 1] = g Color[i, j, 2] = b return Color
7、主函数部分image = cv.imread('c:\\meiping1.png')cv.imshow('image',image像粜杵泳)grayImg = cv.cvtColor(image, cv.COLOR_BGR2GRAY)# print(image)grayImg2Color = TransColor(grayImg) 调用颜色转换函数!cv.imshow('grayImg',grayImg)r,g,b = cv.split(grayImg2Color)cv.imshow('Color0',r)cv.imshow('Color1',g)cv.imshow('Color2',b)cv.imshow('grayImg2Color',grayImg2Color)cv.waitKey(0)cv.destroyAllWindows()