制作子图像具有相同的强度表示

时间:2013-07-25 12:23:12

标签: python-2.7 matplotlib grayscale

我有两个16位灰度图像。一个是较大图像的子图像。他们是中心的。 biggersmaller通知,小一点看起来稍微亮一点。

当显示两者时,较小的看起来更亮。基本上我想要做的是保持相同的灰度值表示,即我希望较小的图像具有与较大图像相同的强度外观(因为各个像素中的GS强度值是相同的)。有什么建议吗?

for j in xrange(windows_a.shape[0]):
    print j

    pl.imshow(windows_a[j], interpolation='nearest') 
    pl.xticks(np.arange(0,window_size_1,1))
    pl.yticks(np.arange(0,window_size_1,1))
    pl.gray()
    pl.grid( color = 'y' ) 
    pl.savefig('./IW_small/IW_small_' + str("%05d" %i) + "_" + str("%05d" %j) + '.png')
    pl.close()   


    pl.imshow(windows_b[j], interpolation='nearest') 
    pl.xticks(np.arange(0,window_size_2,1))
    pl.yticks(np.arange(0,window_size_2,1))    
    pl.gray()
    pl.grid( color = 'y' ) 
    pl.savefig('./IW_big/IW_big_' + str("%05d" %i) + "_" + str("%05d" %j) + '.png') 
    pl.close() 

1 个答案:

答案 0 :(得分:4)

您可以使用imshow functionvminvmax参数自行设置强度值:

for j in xrange(windows_a.shape[0]):
    print j

    vmin, vmax = windows_b[j].min(), windows_b[j].max()

    pl.imshow(windows_a[j], vmin=vmin, vmax=vmax, interpolation='nearest') 
    pl.xticks(np.arange(0,window_size_1,1))
    pl.yticks(np.arange(0,window_size_1,1))
    pl.gray()
    pl.grid( color = 'y' ) 
    pl.savefig('./IW_small/IW_small_' + str("%05d" %i) + "_" + str("%05d" %j) + '.png')
    pl.close()   


    pl.imshow(windows_b[j], vmin=vmin, vmax=vmax, interpolation='nearest') 
    pl.xticks(np.arange(0,window_size_2,1))
    pl.yticks(np.arange(0,window_size_2,1))    
    pl.gray()
    pl.grid( color = 'y' ) 
    pl.savefig('./IW_big/IW_big_' + str("%05d" %i) + "_" + str("%05d" %j) + '.png') 
    pl.close()

此外,我建议使用interpolation='none'参数,因为这通常适用于矢量图形。不过,这对您的PNG文件没有任何影响。