python - 为什么python openCV不按我期望的方式更改背景颜色?

标签 python python-3.x opencv opencv-python

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

我正在尝试更改灰色图片的每个彩色像素。例如,值1,等于254的像素或值30等于(255-30)= 225的像素,依此类推。我的代码工作正常,但是有一个错误:我图片的背景是黑色和黑色,我希望شfter在执行代码时将背景变白。但背景不会改变。

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()

关于python - 为什么python openCV不按我期望的方式更改背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737344/

相关文章:

c++ - 无法在opencv中读取视频

c++ - 交通标志检测与识别

python - 无法使用 OpenCV 4.1.1 VideoCapture 在 MacBook Pro Catalina 操作系统中读取视频

python - 在 python 中打印 bool 文字的困惑

python - 类型错误 : get() takes 1 positional argument but 2 were given

python - 图像因 cv2.warpPerspective 而失去质量

python - 按元素有效地分组数组

python - 用python渲染jpg字节数组序列

php - 在 PHP、JavaScript 中执行此 Python 3 列表操作的最短方法?

python - 如何将 HTML 代码集成到 Python 脚本中?