如何通过 python 脚本而不是 ipython 使用 SPy 显示高光谱图像?

Posted

技术标签:

【中文标题】如何通过 python 脚本而不是 ipython 使用 SPy 显示高光谱图像?【英文标题】:How to display hyperspectral image with SPy by python script not ipython? 【发布时间】:2019-04-04 04:25:52 【问题描述】:

当我使用脚本时,窗口闪烁然后消失,所以我只想知道如何让它保持很长时间?非常感谢! 你可以得到这个python包形式

from spectral import *
img = open_image('92AV3C.lan')
view = imshow(img, (29, 19, 9))


def imshow(data=None, bands=None, classes=None, source=None, colors=None,
       figsize=None, fignum=None, title=None, **kwargs):
    import matplotlib.pyplot as plt
    from spectral import settings
    from .graphics import get_rgb

    set_mpl_interactive()

    view = ImageView()
    if data is not None:
        view.set_data(data, bands, **kwargs)
    if classes is not None:
        view.set_classes(classes, colors, **kwargs)
    if source is not None:
        view.set_source(source)
    elif data is not None and len(data.shape) == 3 and data.shape[2] > 3:
        view.set_source(data)
    if fignum is not None or figsize is not None:
        fig = plt.figure(num=fignum, figsize=figsize)
        view.show(fignum=fig.number)
    else:
        view.show()

    if title is not None:
        view.set_title(title)
    return view

【问题讨论】:

【参考方案1】:

它闪烁是因为程序执行完成,这会关闭 GUI。

常见的做法是在调用view.show之后再调用plt.pause(<expected pause in seconds>)

【讨论】:

【参考方案2】:

我使用 PyCharm2019 和 python3.8。添加两行后,它可以工作。 import matplotlib.pyplot as plt plt.pause(10)

【讨论】:

以上是关于如何通过 python 脚本而不是 ipython 使用 SPy 显示高光谱图像?的主要内容,如果未能解决你的问题,请参考以下文章

iPython (python 2) - ImportError: No module named model_selection

为啥我的 Jupyter notebook 运行的是 ipython 内核而不是 python3?分组问题

Ipython知识点总结

如何配置 jenkins 以使用 jython 解释器而不是 python 运行我的机器人脚本?

脚本执行后启动 ipython qtconsole 作为交互式解释器

将 Python 脚本退出到 IPython 命令行以进行调试