我希望把这个写出来可能对我的问题有所帮助。我有包含面部的图像,我想重新裁剪这些图像,尊重纵横比,同时尽可能多地保留面部。
我想将图像裁剪为任意矩形,可以是高、短、正方形或任何高达 4:1 的宽高比。我想尽可能避免裁剪出我指定的面部或特征(作为图像矩形的内部矩形)。EG 我有一个 (0,0,500, 300) 的图像矩形和一个 (20, 40, 75, 75) 的特征矩形,我想将它裁剪(考虑其纵横比)为 (0,0, 320,200),同时最小限度地裁剪面部矩形。
我有一个中心裁剪的工作实现,我确定图像的较大一侧并根据相同的比例缩放另一侧,将 x 和 y 设置为缩放 w/h 的中心 - 目标 w/h。
为了清楚起见,签名看起来像这样(在 Obj-C 中):
(CGRect)crop:(CGSize)sourceSize toFitSize:(CGSize)fitSize withoutCroppingRect:(CGRect)featuresRect
sourceSize
原始图像的大小在哪里,fitSize
是我想要将图像裁剪成的形状,并且featuresRect
是一个矩形,在(0,0,sourceSize.width, sourceSize,height)
.
也许这应该作为以特征矩形为中心的“中心裁剪”来完成?试图理解这甚至意味着什么。