python - 按图像形状夹紧:用 Numpy 数组中的不同规则替换 X、Y 坐标
问题描述
我有一张形状 (225, 400, 3) 的图片和一组 x,y 坐标:
polygon = np.array([[150, 80], [350, 80], [420, 280], [350, 250], [150, 250]], np.int32)
我想将这些值钳制到我的图像尺寸,所以任何给定的坐标对都不会在我的图像之外。这意味着我需要[X > 400, ...]
用 400替换所有 x 坐标,[..., Y > 225]
用 225 替换所有 y 坐标。
我试图替换所有大于 255 的 Y 坐标但没有成功,它也钳住了 X 坐标。
polygon[(polygon > 225).all(axis=1)] = 225
在这种情况下,通过不同规则钳制 Numpy 数组值的正确方法是什么?
解决方案
IIUC 和坐标是指每一行包含一个(x,y)
坐标(注意这与 不同axis
),然后您可以索引并使用clip
:
polygon[:,0] = polygon[:,0].clip(max=400)
polygon[:,1] = polygon[:,1].clip(max=255)
print(polygon)
array([[150, 80],
[350, 80],
[400, 255],
[350, 250],
[150, 250]])
推荐阅读
- php - 如何使用 hasMany 迭代和添加“随机”键/值到现有对象
- c# - 如何使用 Verify() 方法仅验证某些属性?
- java - java.sql.SQLException: ResultSet 只能以正向访问
- selenium - 无法切换到框架(看起来也像模态窗口),也尝试使用完整的 xpath
- google-cloud-platform - 将 BigQuery 作为源连接到另一个 GCP 项目中的数据融合
- javascript - JS 根据前一个选项选择选项
- ruby-on-rails - Ruby 模块包含的钩子而不是常规扩展?
- wordpress - wordpress 网站上的图片链接损坏
- react-native - 访问“useEffect”中的变量而不在更新时触发效果
- c++ - 如何声明指向成员内容 m_pmd/m_pmf 的成员指针并访问它们?