2024-04-25 05:25:18 发布
网友
我想在两个圆之间裁剪一个适合的图像区域。例如,我想在拟合图像中裁剪出半径为R1和R2的圆之间的区域。我该怎么做呢
您可能会在区域包中找到您想要的内容: https://astropy-regions.readthedocs.io/en/latest/
它可以使用像素或天空坐标创建区域,组合它们,并创建像素遮罩:
In [1]: from regions import CirclePixelRegion, PixCoord In [2]: c1 = CirclePixelRegion(center=PixCoord(6, 6), radius=3) In [3]: c2 = CirclePixelRegion(center=PixCoord(9, 9), radius=3) In [4]: (c1 & c2).to_mask().data Out[4]: array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]) In [5]: (c1 | c2).to_mask().data Out[5]: array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
您可能会在区域包中找到您想要的内容: https://astropy-regions.readthedocs.io/en/latest/
它可以使用像素或天空坐标创建区域,组合它们,并创建像素遮罩:
相关问题 更多 >
编程相关推荐