版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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()