我在PIL遇到了一个奇怪的问题。 我打开用CCD相机拍摄的图像堆栈,然后将它们保存在一个numpy矩阵中。 我写了一个小功能来做到这一点。 我注意到,当我分析一些特定像素中的时间信号时,出现负值,但这很疯狂,因为我确定我的光强度图像不能显示小于0。 这是我的功能:
def readStack (filename, stack, extension = '.tif'):
image = Img.open(filename+extension)
M,N = image.size[1], image.size[0]
matrix = np.zeros((M,N,stack))
for k in range (stack):
if (k%1000 == 0): print k,'; '
image.seek(k)
loaded = image.load()
for i in range(M):
for j in range (N):
matrix[i,j,k] = np.abs(loaded[j,i])
return matrix
我试图纠正这个问题,用#34; np.abs"强制程序,但对我来说,被迫这样做似乎太奇怪了。
这是一个示例信号:使用matplotlib绘制图表,使用ImageJ绘制黑色图表并显示正确的配置文件:
有时会发生这种情况,峰值会变为负值。但是,引用相同像素的两个信号在每个其他值中都是相同的。 提前感谢您的帮助。