首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有多个spectral.imshow() objec的子图

带有多个spectral.imshow() objec的子图
EN

Stack Overflow用户
提问于 2022-06-02 02:43:27
回答 1查看 92关注 0票数 0

我想用sp.imshow绘制多幅高光谱图像。我知道这会返回R,G,B的可视化结果。我有13个HSI文件(13个.hdr和13个.img文件)。我知道如何绘制和分析单个文件,但是我想要一个网格中所有示例的概述。

我也知道以前创建无花果轴。然而,次要情节仍令人困惑。这就是我到目前为止所拥有的。

代码语言:javascript
复制
from pathlib import Path
import spectral as sp
import matplotlib.pyplot as plt

files_path = Path(r"C:\data\Reflectance_Calibrated")
hdr_list = list(files_path.glob('*.hdr'))
bin_list = list(files_path.glob('*.img'))

targets = list(zip(hdr_list,bin_list))

i = 0

## Here is where I tried doing a for loop, yet it did not work.

for k, target in enumerate(targets):
    target_open = sp.envi.open(targets[i][0], targets[i][1])
    sp.imshow(target_open)
    i += 1

我在找像sp.imshow(target_open).add_subplot(ax)这样的东西

有没有人试过用spectral.imshow对象做子图?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-06-06 01:58:08

有几个选项可以实现你想要的。一种是使用plt.subplot来选择每个网格单元格,然后在调用sp.imshow时传递fignum关键字。例如,要创建图像的Nx1网格(即具有单个列的网格):

代码语言:javascript
复制
fig = plt.figure()
for k, target in enumerate(targets):
    target_open = sp.envi.open(targets[k][0], targets[k][1])
    plt.subplot(len(targets), 1, k + 1)
    sp.imshow(target_open, fignum=fig.number)

另一种选择是使用sp.get_rgb检索每个图像的RGB图像数据,然后使用plt.imshow代替sp.imshow进行呈现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72470081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档