2017-07-13 77 views
0

新手在这里!我正在尝试在图像上应用滤镜,并且希望在两个窗口中显示原始图像和滤镜图像。我遇到的问题是,原始图像(img_1)也会被过滤,即使我仅将修改后的通道应用于img_2。我知道如果在合并img_2的频道之前触发了img_1的imshow,那就没问题了。即使将过滤器应用于img_2,我仍然对为什么img_1被更改感到困惑。变量赋值 - OpenCV/Python

import cv2 
img_1 = cv2.imread('C:/xxxx') 
img_2 = img_1 

b,g,r = cv2.split(img_2) 

cv2.addWeighted(b, 0.5, g, 0.5, 0, b) 
cv2.merge((b,b,r), img_2) 

cv2.imshow('Original', img_1) 
cv2.imshow('Filtered with RC', img_2) 
cv2.waitKey() 
cv2.destroyAllWindows() 

回答

0

它们引用的是与您所写的相同的图像img_2 = img_1。 您可以通过此方式复制图片以获得所需的输出:img_2 = img_1.copy()