我正在使用matplotlib.imshow2D阵列的交互式显示.光标下的x/y坐标显示在窗口的左下角.是否也可以在光标下获取数组的值?
简短版本:是否有用于显示图像的Python方法,该图像实时显示像素指数和强度?因此,当我将光标移到图像上时,我会不断更新显示,例如pixel[103,214] = 198(灰度)或pixel[103,214] = (138,24,211)rgb?
长版:
假设我打开一个保存为ndarray的灰度图像im并使用imshowmatplotlib 显示它:
im = plt.imread('image.png')
plt.imshow(im,cm.gray)
Run Code Online (Sandbox Code Playgroud)
我得到的是图像,在窗口框架的右下角,是像素索引的交互式显示.除了它们不完全,因为值不是整数:x=134.64 y=129.169例如.
如果我以正确的分辨率设置显示器:
plt.axis('equal')
Run Code Online (Sandbox Code Playgroud)
x和y值仍然不是整数.
在imshow从方法spectral包做一个更好的工作:
import spectral as spc
spc.imshow(im)
Run Code Online (Sandbox Code Playgroud)
然后在右下角我现在有了pixel=[103,152]例如.
但是,这些方法都没有显示像素值.所以我有两个问题:
imshowfrom matplotlib(和imshowfrom scikit-image)显示正确的(整数)像素索引吗?我在一个使用 PyQt4 和 Matplotlib 库的项目中工作。我创建了一个 matplotlib 图并添加了一个工具栏。
有没有办法禁用其中显示的坐标?我的意思是这些:
我想这样做,因为我要在工具栏中添加一些按钮,我需要这个空间。
这是 matplotlib 图的代码:
class Figure(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.linedit = SelectData(self)
self.mainWidget = QWidget()
self.setCentralWidget(self.mainWidget)
layout = QVBoxLayout()
self.mainWidget.setLayout(layout)
self.figure_canvas = FigureCanvas(Figure())
layout.addWidget(self.figure_canvas, 10)
self.axes = self.figure_canvas.figure.add_subplot(211)
self.axes.grid(False)
#I added this toolbar
self.navigation_toolbar = NavigationToolbar2(self.figure_canvas, self)
self.addToolBar(Qt.TopToolBarArea, self.navigation_toolbar)
Run Code Online (Sandbox Code Playgroud)
我是python的新手,所以我希望你能帮助我。谢谢您的回答。