【问题标题】:How can I change the color of an image by using cv2?如何使用 cv2 更改图像的颜色?
【发布时间】:2020-06-06 14:50:25
【问题描述】:

现在,我得到了一张图片,我想改变它的颜色。 然后,显示之前和之后

我就是这样写的

import numpy as np
import cv2

Original_img = cv2.imread('img.jpg')
New_img = Original_img

print(Original_img[0 , 20] , New_img[0 , 20])


New_img[0 , 20] = 0  #change the color of new

print( Original_img[0 , 20] , New_img[0 , 20])

但事实证明两者都发生了变化。 但是,我只想要新的改变

输出:

[55 69 75] [55 69 75]
[0 0 0] [0 0 0]

【问题讨论】:

    标签: python-3.x cv2


    【解决方案1】:

    这是一个棘手的问题。事实证明,您的 Original_img 和 New_img 都引用了 Python 中的同一个底层对象。您需要复制以创建新对象:

    New_img = Original_img.copy()  # use copy function from numpy
    

    Python 列表也是如此。这是一个使用交互式 Python 会话的简单注释示例:

    >>> a = [1,2,3]
    >>> b = a
    >>> b
    [1, 2, 3]
    >>> b[1] = 3.1415927   # we think we are only changing b
    >>> b
    [1, 3.1415927, 3]      # b is changed
    >>> a
    [1, 3.1415927, 3]      # a is also changed
    

    同样的例子,使用copy()

    >>> from copy import copy
    >>> a = [1,2,3]
    >>> b = copy(a)  # now we copy a
    >>> b
    [1, 2, 3]
    >>> b[1] = 3.1415927
    >>> b
    [1, 3.1415927, 3] # b is changed
    >>> a
    [1, 2, 3]         # a is unchanged!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2011-10-22
      • 2020-11-03
      • 1970-01-01
      相关资源
      最近更新 更多