【发布时间】:2018-11-19 06:56:12
【问题描述】:
我正在尝试编写一个 python 脚本来更改 png 文件中文本的颜色。这是一个原始图像的示例
例如,假设我想将洋红色更改为蓝色。我的脚本将任何非黑色 (255,255,255) 的颜色更改为蓝色。我的假设是这会将洋红色文本更改为蓝色,因为图像中的其他所有内容都是不同的单一纯色(python 将其读取为黑色)。相反,这是我得到的结果
显然,这是不正确的。我有点难过。谁能告诉我发生了什么以及如何解决这个问题?这是我第一次尝试使用 python 进行图像处理。
这是我的代码
from __future__ import division
from pylab import*
from math import*
from random import*
from scipy.optimize import curve_fit
import numpy as np
from PIL import Image
# https://www.codementor.io/isaib.cicourel/image-manipulation-in-python-du1089j1u
#change color
#https://stackoverflow.com/questions/36468530/changing-pixel-color-value-in-pil
image_name = 'Q_test.png'
test_image = 'Q_blue.png'
R1_Path = "C:/Users/PancakeMSTR/Desktop/Keyboard Related/Fusion Keycaps/Cherry/UpdatedLegends/Katakana_Updated/R1/"
image = Image.open(R1_Path+image_name)
image = image.convert('RGB')
colors = image.getcolors()
pixelMap = image.load()
newImg = Image.new(image.mode,image.size)
pixelsNew = newImg.load()
width,height = newImg.size
for i in range(width):
for j in range(height):
if pixelMap[i,j] != (255,255,255):
pixelsNew[i,j] = (0,0,255)
else:
pixelsNew[i,j] = pixelMap[i,j]
image.close()
newImg.save(R1_Path+test_image)
谢谢!让我知道是否需要任何进一步的信息。很高兴澄清我所说的一切。
【问题讨论】:
-
黑色是 (0,0,0)。白色是 (255,255,255)
-
知道您的图像有 18 种独特的颜色可能会让您感到惊讶。
-
只是检查 - 你看到我的答案了吗?它有帮助吗?如果没有,缺少什么?
标签: python image-processing python-imaging-library