为什么 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 - image2
或 image2 = 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()
我刚开始使用 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 - image2
或 image2 = 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()