我正在尝试访问图像的特定部分,以在用户定义的图像区域上执行VNCoreMLRequest。我在某些感兴趣的地区遇到错误,而其他地区则很好。每个区域都已标准化。
以下两个方面有效:
regionOfInterest CGRect(origin =(x = 0.49538024164889838,y = 0.31979695431472077),size =(width = 0.26865671641791045,height = 0.24492385786802032))
regionOfInterest CGRect(origin =(x = 0.13290689410092396,y = 0.28807106598984761),size =(width = 0.24733475479744135,height = 0.19416243654822332))
但以下两个方面不起作用:
regionOfInterest CGRect(origin =(x = 0.15422885572139303,y = 0.87563451776649747),size =(width = 0.29992892679459843,height = 0.32106598984771573))
错误讯息:“感兴趣的区域[0.148543,0.874365,0.319829,0.31599]不在[0 0 1 1]的标准化范围内”
regionOfInterest CGRect(origin =(x = 0.57640369580668083,y = 0.90862944162436543),size =(width = 0.24307036247334754,height = 0.36928934010152287))
有人可以指出我没有看到的内容吗?也许我对regionOfInterest
答案 0 :(得分:1)
这是因为您的y +高度> 1,所以感兴趣区域大于图像。我正在使用类似的
let x = max((regionOfIntres.origin.x - 0.1), 0)
let y = max((regionOfIntres.origin.y - 0.1), 0)
let width = min((regionOfIntres.size.width + 0.2), (1 - x))
let height = min((regionOfIntres.size.height + 0.2), (1 - y))