一.目的
将下图绿色的地方转变为蓝色,不需要的背景转换为黑色,并且蓝色要有规律。
二.步骤
1.读取像素,获取像素的前两个通道值img[0]和img[1]
rows,cols,channels = img.shape
2.遍历图像的像素值
for i in range(rows):
for j in range(cols):
3.通过上述遍历,输出的img[i][j]为一个列表,列表中有三个元素,每个元素对应像素的rgb值,因此将需要改变的像素值判断语句输出和赋值就可以进行替换了。
三.代码
import cv2
import numpy as np
# 读取照片
img=cv2.imread('cko.1.tif') # 输入需要转换的图片名称
# 打印图片的信息————分辨率、图片通道
rows,cols,channels = img.shape
print(("图片分辨是:%s*%s 此图片是%s通道")%(rows,cols,channels))
#cv2.imshow('img',img)
# 遍历替换
for i in range(rows):
for j in range(cols):
#print(img[i, j])
if img[i,j][0] == 0 and img[i][j][2] == 0 and img[i][j][1] > 90:
img[i][j][0] = img[i][j][1]
img[i][j][1] = 0
else:
img[i][j][1] = 0
img[i][j][0] = 0
img[i][j][2] = 0
#print(img[i,j])
cv2.imwrite('cko.1_one.tif',img)
# 键盘上按下q键退出
k = cv2.waitKey(0)
if k =='q':
cv2.destroyAllWindows()
三.结果展示
原图:
转换的图像: