2016-07-04 81 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