簡體   English   中英

如何使用 cv2 更改圖像的顏色?

[英]How can I change the color of an image by using cv2?

現在,我得到了一張圖片,我想改變它的顏色。 然后,顯示之前和之后

我就是這樣寫的

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

但事實證明,兩者都發生了變化。 但是,我只想要新的改變

Output:

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

這是一個棘手的問題。 事實證明,您的 Original_img 和 New_img 都引用了 Python 中相同的底層 object。 您需要進行復制以創建新的 object:

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

Python 列表的行為也是如此。 這是一個使用交互式 Python session 的簡單注釋示例:

>>> 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!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM