【问题标题】:Why doesn't python openCV change background colors in the way I expect it to?为什么 python openCV 不以我期望的方式更改背景颜色?
【发布时间】:2019-06-24 13:11:28
【问题描述】:

我刚开始在 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()

【问题讨论】:

  • “背景”到底是什么意思?图片的哪些部分是背景,哪些不是?
  • 从你当前的代码和你想要的输出中提供图像样本、输入和输出(用windowspaint绘制)

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


【解决方案1】:

从逻辑上看,您似乎想要反转灰度图像。您可以使用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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2013-11-16
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多