matplotlib 中的 ax.fill() 创建白边
ax.fill() in matplotlib creates white margins
我正在使用 caffe、sciki-image、opencv 和 matplotlib/pyplot 进行图像分割。这项工作涉及一些图像大小调整。本质上,在我加载并调整图像大小后:
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)
其中 vald
是一些数组,image2
是经过处理的 input_image
的一些输出
保存后
fig.savefig(save_dir + str(idx) + ".png", bbox_inches = 'tight')
我得到了这样的东西,它本质上是原始图像的裁剪版本
所以我的第一反应当然是裁剪图像然后调整大小,但结果却失去了很多质量(分辨率下降)。我尝试遵循 here and here 的建议,但也没有得到任何改进。
跟进我的评论:
轴限制已更改。图像位于 (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
.
我正在使用 caffe、sciki-image、opencv 和 matplotlib/pyplot 进行图像分割。这项工作涉及一些图像大小调整。本质上,在我加载并调整图像大小后:
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)
其中 vald
是一些数组,image2
是经过处理的 input_image
保存后
fig.savefig(save_dir + str(idx) + ".png", bbox_inches = 'tight')
我得到了这样的东西,它本质上是原始图像的裁剪版本
所以我的第一反应当然是裁剪图像然后调整大小,但结果却失去了很多质量(分辨率下降)。我尝试遵循 here and here 的建议,但也没有得到任何改进。
跟进我的评论:
轴限制已更改。图像位于 (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
.