所以我试图颠倒QR码中的黑白颜色
我的代码适用于已经严格为白色和黑色的图像:RBG值为0,0,0和255,255,255
但它没有适用于另一个略微偏白和黑色的图像:21,21,21和243,243,243。
在略微偏离的图像上运行我的代码将使整个事物严格变为白色
我的代码获取每个通道的值,如果其中任何一个超过140,它将变为白色。为什么稍微偏黑,21,21,21变白了?
def invert(smallPicture):
for pixel in getPixels(smallPicture):
valueRed = getRed(pixel)
valueGreen = getGreen(pixel)
valueBlue = getBlue(pixel)
if (valueRed or valueBlue or valueGreen > 140):
setColor(pixel, white)
else:
setColor(pixel, black)
return smallPicture
我在JES 4.3中使用Jython。
谢谢!
答案 0 :(得分:3)
在您的代码中,Python正在检查valueRed
评估为True
或valueGreen
评估为True
或valueBlue
是否大于140.Python不会将if
条件中的每个变量与140进行比较:您需要重写由or
语句分隔的每个比较。比Python将运行每个比较并评估为True
或False
,具体取决于颜色值是否符合比较。
您需要使用以下内容替换条件语句:
if (valueRed > 140 or valueBlue > 140 or valueGreen > 140):
setCoor(pixel, white)
else:
setColor(pixel, black)