OpenCV:灰度图转化为RGB图像

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013419318/article/details/102544905
import cv2  as cv
import  numpy as np

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

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)

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

def TransColor(image):
    rows = image.shape[0]
    cols = image.shape[1]
    print(rows, cols)
    Color = np.zeros((rows, cols, 3), np.uint8)

    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

if __name__ == '__main__':
    image = cv.imread('AfterDeal.jpg')
    # image = cv.imread('c:\\meiping1.png')
    cv.imshow('image', image)
    grayImg = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    print(grayImg)
    grayImg2Color = TransColor(grayImg)
    cv.imwrite('1111.jpg',grayImg2Color)
    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()

猜你喜欢

转载自blog.csdn.net/u013419318/article/details/102544905