我正在尝试基于硬编码值对图像进行阈值处理,方法是将原始图像分配给变量。此变量用于阈值化。但是,当我执行此操作时,原始图像也会被阈值化。难道我做错了什么?还是有其他方法可以做到这一点?下面提供了代码:
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')
图像提供如下:
谢谢。
最佳答案
imgx = img1
您基本上是在创建对已经存在的变量
imgx
的引用。现在,imgx
和img1
指向相同的地址。如果要深度复制数组,请执行此操作。
img1 = numpy.array(imgx)
有关详细信息,请参见this post。
关于python - 为什么要替换原始图像矩阵值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46246713/