我有这张图片rand-walk-2.png
我想把所有的白色像素点转换为黑色像素点,以便得到一张红色随机漫步在黑色背景上的图片。这意味着我不能只是反转颜色。我的当前代码只是找到白色像素并将它们设置为黑色:
from PIL import Image
import PIL.ImageOps
import numpy as np
from skimage.io import imsave
import cv2
in_path = 'rand-walk-2.png'
out_path = 'rand-walk-trial.png'
Image = cv2.imread(in_path)
Image2 = np.array(Image, copy=True)
white_px = np.asarray([255, 255, 255])
black_px = np.asarray([0 , 0 , 0 ])
(row, col, _) = Image.shape
for r in xrange(row):
for c in xrange(col):
px = Image[r][c]
if all(px == white_px):
Image2[r][c] = black_px
imsave(out_path, Image2)
但它会产生这个结果:
原因我无法解释。