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

使用iradon处理(168,400)Radon图像后尺寸变为(168,168)的问题咨询

问题原因与解决方案

核心原因

scikit-image的iradon函数默认会根据输入投影的长度(你的输入中是168),重建出正方形图像——这是因为它默认假设原始图像是正方形,且投影覆盖的是正方形的外接区域。你的输入radon_image形状为(168,400),其中168是每条投影的采样长度,400是角度数量;iradon默认以这个采样长度作为正方形边长,所以输出(168,168)。

另外,大概率你在生成Radon投影时,使用了默认的circle=True参数(skimage.transform.radon的默认值),这个参数会自动把原始矩形图像裁剪成正方形再做变换,导致投影长度仅对应正方形的边长,而非原始矩形的对角线长度,进一步限制了iradon的重建范围。

解决步骤

  1. 修正Radon变换参数(若可重新生成投影)
    如果原始图像是(168,400)的矩形,生成Radon投影时要关闭自动裁剪:

    from skimage.transform import radon
    import numpy as np
    # 角度设置需与后续iradon调用一致,这里用400个0-180度的角度
    angles = np.linspace(0, 180, 400, endpoint=False)
    radon_image = radon(original_image, circle=False, angles=angles)
    

    此时radon_image的形状会变为(≈434, 400)(434是原始矩形的对角线长度,确保投影覆盖整个矩形区域)。

  2. 指定iradon的输出尺寸
    在调用iradon时,显式设置output_size为目标尺寸,同时匹配生成投影时的角度参数:

    from skimage.transform import iradon
    # 角度参数必须和生成radon_image时完全一致
    reconstructed_image = iradon(radon_image, filter_name=None, output_size=(168, 400), angles=angles)
    

注意事项

  • 如果无法重新生成Radon投影(只有现有(168,400)的投影数据),直接指定output_size=(168,400)会导致重建图像拉伸变形——因为现有投影的长度仅覆盖了正方形区域,无法完整还原矩形的全部信息,这种情况下只能接受变形或重新生成正确投影。
  • output_size支持二元组是scikit-image较新版本的特性,若你的版本较旧,需要先升级库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:39:23