尝试更改颜色背景原图为
import numpy as np
import cv2
import copy
def read_and_reshape_img():
img = cv2.imread('1.png')
img = np.array(img)
(hight,wight,_) = img.shape
img_copy = copy.deepcopy(img)
img_copy = img_copy.reshape(hight*wight,3)
standard = img_copy[1,]#获取背景板颜色
print(standard)
for i in range(hight*wight):
if (img_copy[i,].all() == standard.all()):#若背景板颜色一致则更改
img_copy[i,] = [255,0,0]
#print('True')
img_copy = img_copy.reshape(hight,wight,3)
cv2.imshow('test',img_copy)
cv2.waitKey()
cv2.destroyAllWindows()
if __name__ == '__main__':
read_and_reshape_img()
但出来的是这个玩意
你是说什么也不改,只把 img_copy[i,] = [255,0,0] 改成 img_copy[i,] = [255,255,255] 就能正确去掉背景板?
你这样应该去不掉背景板吧?只会把图片完全填充成为你设定的背景色
打印了一下像素点,进入if的有1456个点,没进的有465104个点,所以实际判断的与预估是反的。改写颜色的应该是改的字的颜色,但是出来的结果又不一样。。。。像是叠加或者减去了
不知道你这个问题是否已经解决, 如果还没有解决的话: