2017-06-20 5 views
1

私は、PyQt4 + Python 2.7アプリケーションにmatplotlibを埋め込み、私のUIにイメージ(つまり2D)データを視覚化できるようにしようとしています。私は、そのようなカラーマップなどmatplotlibのの機能の一部を利用することを好むズーム、など私がオンラインいくつかのチュートリアルを見つけたが、私の問題に来る最も近いものは、次のSO質問ですたい:matplotlibをPyQt4に埋め込む

Embedding matplotlib in pyqt4 using imshow

著者のように、「imshow(...)」も使用したいと思います。

self.mainImage = MatPlotLibImage() 
self.setWidget(self.mainImage) 

この:私は、その後経由で上記matplotlibのウィジェットを埋め込むことができ、私のQDockWidget派生クラスのコードで

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
import numpy as np 
from matplotlib.figure import Figure 
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 

class matPlotLibImage(FigureCanvas): 
    def __init__(self): 
     self.fig = Figure() 
     self.axes = self.fig.add_subplot(111) 
     self.x = np.arange(0.0, 3.0, 0.01) 
     self.y = np.cos(2*np.pi*self.x) 
     self.axes.plot(self.x, self.y) 
     super(MatPlotLibImage, self).__init__(self.fig) 

を次のようにオンラインチュートリアルに従うことで、私はQWidgetのように私のUIでmatplotlibのを埋め込むことができます期待どおりの簡単なプロットが表示されます。しかし今、numpy配列として表された画像データを表示したいと思います。私の質問がある

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import numpy as np 

img = mpimg.imread("someImage.png") 
imgplot = plt.imshow(img) 

::私はオンライン見ているすべての例は、以下の変異体を使用している私が使用できるように、どのように私は2つのアプローチを組み合わせてください「(関数imshowを)」が、私が行ったように埋め込まれました簡単なプロット?前もって感謝します。

明確化:厳密に言えば、私が 'imshow(何でも)'を使用することは重要ではありません。埋め込まれたmatplotlibウィジェットに画像データを(numpy配列で)表示することに興味があります。しかし、imshowには私が活用したいと思う有用なものがいくつかあります。

答えて

1

あなただけimgは、あなたがそれに前回読み込まれている必要がありますことを、画像のnumpyの配列です

self.axes.imshow(img) 

とラインself.axes.plot(self.x, self.y)を交換する必要があるようですね。

+0

ありがとうございます。私のコメントをご覧ください。 – LKeene