スタック・オーバーフロー Asked by tani on December 5, 2020
以下のコードによりDICOM形式の複数の画像を合成したのですが画像1のようにグラフの軸が入ってしまいます。
import pydicom
import matplotlib.pyplot as plt
image1 = pydicom.dcmread('g1.dcm')
image3 = pydicom.dcmread('g2.dcm')
image4 = pydicom.dcmread('g3.dcm')
image2 = pydicom.dcmread('g4.dcm')
image_sum = image1.pixel_array + image2.pixel_array + image3.pixel_array + image4.pixel_array
plt.imshow(image_sum)
plt.savefig("combined.tif")
画像2のように合成した画像のみのものをTiff形式で保存したいのですが、修正、もしくは別の方法はないでしょうか?
コメントに紹介した記事と、+もう一つの記事&matplotlibのドキュメントの応用で、以下のようにすれば出来ると思われます。(回答の該当部分を抜粋)
Matplotlib plots: removing axis, legends and white spaces
I think that the command
axis('off')
takes care of one of the problems more succinctly than changing each axis and the border separately.plt.axis('off') plt.savefig("test.png", bbox_inches='tight')
Removing white space around a saved image in matplotlib
plt.plt.margins(0,0) plt.gca().xaxis.set_major_locator(plt.NullLocator()) plt.gca().yaxis.set_major_locator(plt.NullLocator()) savefig("filename.pdf", bbox_inches = 'tight', pad_inches = 0)
bbox_inches : str or Bbox, default: rcParams["savefig.bbox"] (default: None)
Bounding box in inches: only the given portion of the figure is saved. If 'tight', try to figure out the tight bbox of the figure.pad_inches : float, default: rcParams["savefig.pad_inches"] (default: 0.1)
Amount of padding around the figure when bbox_inches is 'tight'.
上記2つ目の記事は4つのステップを実行していますが、最後のsavefig
1行だけでも効果はありそうです。質問ソースの最後の2行を以下のように変えてみてください。(plt.imshow(image_sum)
は変更無しです)
plt.imshow(image_sum)
plt.axis('off')
plt.savefig("combined.tif", bbox_inches='tight', pad_inches=0.0)
希望するものでは無かった場合には色々追加して試してみてください。
Answered by kunif on December 5, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP