55

scikit-image を使用して TIF ファイルを読み込み、ipython ノートブック (バージョン 2.2.0) にインラインで表示しています。これは機能しますが、最初に表示されたときの画像は非常に小さく、画像の右下にあるドラッグ可能なハンドルを使用してサイズを変更すると、元の解像度を維持しながら画像が再スケーリングされるため、拡大すると非常にぼやけます. 基本的には、ipython がその場で画像をサムネイルに変換しているかのようです。

matplotlibplt.imshow()も使用してみましたが、まったく同じ結果が得られました。でノートブックを始めていipython notebook --pylab inlineます。

from skimage import io
import matplotlib.pyplot as plt
image_stack = io.MultiImage("my_image.tif")
image = image_stack[0]  # it's a multi-page TIF, this gets the first image in the stack

io.imshow(image)  # or plt.imshow(image)
io.show()  # or plt.show()
4

4 に答える 4

6

インラインの matplotlib Figure の解像度は、おそらくノートブック ファイルのスペースを節約するために、GUI ウィンドウまたは保存された画像に表示されるものから少し縮小されています。それを変更するには、次のようにします。

import matplotlib as mpl
mpl.rc("figure", dpi=dpi)

dpiインライン プロットのサイズ/解像度を制御する数値はどこにありますか。インラインのデフォルトは 80 で、matplotlib の他の場所のデフォルトは 100 だと思います。

ハンドルをドラッグして結果のプロットのスケーリングが機能しない理由は、プロットが png としてレンダリングされるため、スケーリングによってズームされますが、固有の解像度は変更されません。

于 2014-08-20T19:57:09.503 に答える
2

これが iPython ノートブック (%matplotlib インライン) で画像をドラッグしてサイズ変更するときに発生するのと同じであると仮定すると、修正はかなり簡単です。

別のデフォルト サイズで Figure を作成するだけの場合、解像度もデフォルトのサイズで増加します ( ipython の imshow の解像度を変更します)。例えば:

fig = plt.figure(figsize = (10,10))
ax = fig.add_subplot(111)
ax.imshow(array)

このようなものは、プロットしようとしているものの解像度を上げるはずです。これはあなたのコードでうまくいくようです:

from skimage import io
import matplotlib.pyplot as plt
%matplotlib inline

image_stack = io.MultiImage("my_image.tif")
image = image_stack[0] 

fig = plt.figure(figsize= (20,20)) #create an empty figure to plot into with 20x20 size
io.imshow(image)
io.show()
于 2016-06-10T21:54:43.083 に答える