【发布时间】:2013-10-04 20:46:05
【问题描述】:
我的图像(4000x2000 像素)源自同一张图像,但只有不到 1% 的像素存在细微差异。我想并排绘制两个图像并 highlight 阵列的不同区域(通过 highlight 我的意思是我想要不同的像素跳出来,但仍然显示与其值匹配的颜色。到目前为止,我一直在使用未填充的矩形来勾勒这些像素的边缘。我可以在小图像中很好地做到这一点(~ 50x50) 与:
fig=figure(figsize=(20,15))
ax1=fig.add_subplot(1,2,1)
imshow(image1,interpolation='nearest',origin='lower left')
colorbar()
ax2=fig.add_subplot(122,sharex=ax1, sharey=ax1)
imshow(image2,interpolation='nearest',origin='lower left')
colorbar()
#now show differences
Xspots=im1!=im2
Xx,Xy=nonzero(Xspots)
for x,y in zip(Xx,Xy):
rect=Rectangle((y-.5,x-.5),1,1,color='w',fill=False,ec='w')
ax1.add_patch(rect)
ax2.add_patch(rect)
但是,当图像非常大时,这不会很好。奇怪的事情发生了,例如当我放大补丁时消失了。此外,这种方式很糟糕,因为当我放大/缩小时加载东西需要很长时间。
我觉得必须有更好的方法来做到这一点,也许只有一个补丁可以确定所有东西的位置,而不是一大堆补丁。我可以在 imshow 图像上做一个散点图,但我不知道如何修复它,以便在我放大/缩小时点将完全保持像素的大小。
有什么想法吗?
【问题讨论】:
标签: matplotlib plot patch figure