为什么 python openCV 没有按照我期望的方式更改背景颜色?

Why doesn't python openCV change background colors in the way I expect it to?

我刚开始使用 python3.7 中的 opencv。

我正在尝试更改灰色图片的每个颜色像素。例如,值为 1Ì 等于 254 的像素或值为 30 的像素等于 (255-30)=225 等等。我的代码工作正常,但有一件事是错误的:我的图片背景是黑色的,我希望在执行代码后背景是浅白色的。但是背景没有变化

import cv2 as cv
img2 = cv.imread('2.JPG')
print(img2.shape)
image2 = img2[0::2, 0::2]
for i in range(image2.shape[0]):
    for j in range(image2.shape[1]):
        for k in range(256):
            if image2[i, j, 2] == k:
                image2[i, j] = 255 - k

cv.imwrite('img2.JPG', image2)
cv.imshow('img2', image2)
cv.waitKey()

从逻辑上看,你想要反转灰度图像。您可以使用 image2 = 255 - image2image2 = cv2.bitwise_not(image2).

import cv2 as cv

img2 = cv.imread('2.jpg', 0)
image2 = img2[0::2,0::2] #downsampling
image2 = 255 - image2
# image2 = cv.bitwise_not(image2)
cv.imwrite('img2.JPG', image2)
cv.imshow('img2', image2)
cv.waitKey()