使用OpenCV在Python中翻转图像

9 浏览
0 Comments

使用OpenCV在Python中翻转图像

我想加载一张彩色图像,将其转换为灰度图像,然后反转文件中的数据。

我需要做的是在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风格)。我可以看到一个有白色背景的图像变成了黑色,但只有这个变化,其他颜色似乎没有太多(如果有的话)变化。

0