最佳答案
我想加载一个彩色图像,将其转换为灰度,然后反转文件中的数据。
我需要做的: 在 OpenCV 中迭代数组,并用这个公式更改每个值(它可能是错误的,但对我来说似乎是合理的) :
img[x,y] = abs(img[x,y] - 255)
但我不明白为什么它不起作用:
def inverte(imagem, name):
imagem = abs(imagem - 255)
cv2.imwrite(name, imagem)
def inverte2(imagem, name):
for x in np.nditer(imagem, op_flags=['readwrite']):
x = abs(x - 255)
cv2.imwrite(name, imagem)
if __name__ == '__main__':
nome = str(sys.argv[1])
image = cv2.imread(nome)
gs_imagem = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
inverte(gs_imagem, "invertida.png")
inverte2(gs_imagem, "invertida2.png")
我不想做一个明确的循环(我试图更加 Python 化)。我可以看到,在一个图像,得到一个白色的背景,它变成黑色,但只有这一点,它看起来不像其他颜色有很大的变化(如果有)。