python环境下进行灰度转伪彩色转换

2025-10-06 22:16:38

1、理论基础知识:

1)伪彩色增强,对灰度进行颜色划分。由一定的映射关系求R,G,B,组成该点的彩色值;

还有空域转频域再转空域和 3)光滑非线性的变换函数的方法,都太复杂,具体请度娘。

一下是百度得到的伪彩色经典图形和转换函数

python环境下进行灰度转伪彩色转换

python环境下进行灰度转伪彩色转换

2、import cv2  as cv

import  numpy as np

image = cv.imread('c:\\meiping1.png')

cv.imshow('image',image)

grayImg = cv.cvtColor(image, cv.COLOR_BGR2GRAY)

先使用imread加载图片

cvtColor转换为 灰度图。

python环境下进行灰度转伪彩色转换

3、根据经验公式编写SetcolorR 完成Red颜色转换

def SetcolorR(gray):    if gray < 127:        return 0    elif gray > 191:        return 255    else:        return 4 * gray - 510

python环境下进行灰度转伪彩色转换

4、根据经验公式编写SetcolorG完成Green颜色转换

def SetcolorG(gray):

    if (gray <= 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)

python环境下进行灰度转伪彩色转换

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

python环境下进行灰度转伪彩色转换

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

python环境下进行灰度转伪彩色转换

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢