2016-07-04 44 views
0

我正在使用caffe,sciki-image,opencv和matplotlib/pyplot进行图像分割。这项工作涉及一些图像大小调整。实质上,在我加载并调整图像大小之后:matplotlib中的ax.fill()创建白色边距

put_image = caffe.io.load_image(os.path.join(source_dir, pix) 
input_image = caffe.io.resize_image(input_image, (600,500), interp_order=3) 

我做了相当多的处理。一切工作顺利,直到我决定把一些外形添加到图像:

fig, ax = plt.subplots(1, 1) 
ax.imshow(image2) 
... 
ax.fill(vald[:, 0], vald[:, 1], fill=False, color='red', linewidth=1) 

其中​​一些阵列和image2是从加工input_image

一些输出保存它

fig.savefig(save_dir + str(idx) + ".png", bbox_inches = 'tight') 

我拿到后像这样的东西,其实质上是原始图像的裁剪版本

enter image description here

因此,当然,我的第一反应是裁剪图像并在之后调整大小,但结果却损失了很多质量(分辨率下降)。我尝试了herehere的建议,但是也没有得到任何改进。

+0

看起来像轴限制已经改变。我想它是把图像放在(0,0)跨越到(500,600),但它实际上是从-100开始而不是0.尝试执行'ax.set_xlim([0,500] )'和'ax.set_ylim([0,600])'(也许ylim应该是600,因为y倒数??) – pathoren

+0

不错的建议,但为什么图像会旋转? – Alex

+0

好吧修好了,非常感谢! – Alex

回答

1

后续评论: 轴的极限已经改变。图像位于(0,0)和(500,600)之间的矩形中。然而,x和y-lim并不完全是这样;它们的范围从(-100,-100)到(500,600)。只需更新ax.set_xlim([0, 500])ax.set_ylim([600, 0])的限制即可移除白色框架。

注意:如果您还想隐藏刻度线,您可以通过ax.set_xticks([])ax.set_yticks([])或通过将刻度线的可见性设置为False来轻松完成此操作。

+0

是的,第二个想到这是有史以来最明显的事情) – Alex