我正在尝试根据硬编码值对图像进行阈值处理。我是通过将原始图像分配给变量来实现的。此变量用于阈值处理。但是,当我执行此操作时,原始图像也会被阈值化。难道我做错了什么?或者还有其他方法吗?代码如下:
import numpy as np
from scipy.misc import imread
import matplotlib.pyplot as plt
img1 = imread('4.2.04.tiff')
imgx = img1
imgx[img1>=150] = 0
plt.figure()
plt.imshow(np.uint8(img1))
plt.show()
plt.title('Original Image after thresholding')
plt.figure()
plt.imshow(np.uint8(imgx))
plt.title('Thresholded Image')
答案 0 :(得分:2)
imgx = img1
您基本上是在创建对现有变量imgx
的引用。现在imgx
和img1
指向同一地址。
如果要深度复制数组,请执行此操作。
img1 = numpy.array(imgx)
有关详细信息,请参阅this post。