You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保存Scikit image viewer的输出图像?

解决方法

方案1:直接保存处理后的原始图像数据(推荐)

viewer.show()本质只是将你已经计算得到的edges数组做可视化渲染,你要存储的核心图像数据已经存在于edges变量中,不需要依赖viewer的输出即可直接保存,这种方式得到的是无冗余信息的纯图像结果。
代码示例:

import skimage
image1 = skimage.io.imread(fname='shot1.tif', as_gray=True)

edges = skimage.feature.canny(
        image=image1,
        sigma=2.0,
        low_threshold=0.1,
        high_threshold=0.2
        )

# 直接保存边缘检测结果,转成uint8格式适配图像存储规范
skimage.io.imsave(fname='edges_output.tif', arr=edges.astype('uint8') * 255)

# 可视化逻辑保持不变
viewer = skimage.viewer.ImageViewer(edges)
viewer.show()

说明:canny算子返回的是布尔类型的二值数组,astype('uint8') * 255操作是将布尔值的True/False转为对应图像的白/黑(255/0),避免部分图像格式存储时出现识别异常。

方案2:直接保存viewer的渲染结果

如果你确实需要存储viewer渲染后的展示内容,可以直接调用ImageViewer实例内置的save_to_file方法,无需额外依赖其他工具:

viewer = skimage.viewer.ImageViewer(edges)
# 保存viewer渲染的图像内容到文件
viewer.save_to_file('viewer_render_output.png')
viewer.show()

内容的提问来源于stack exchange,提问作者user6895869

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 00:30:01