これを書き出すことが私の問題に役立つことを願っています。顔を含む画像がありますが、できるだけ多くの顔を維持しながら、アスペクト比を考慮してこれらの画像を再トリミングしたいと思います。
画像を任意の長方形にトリミングしたいのですが、これは、高さ、短さ、正方形、またはアスペクトが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)
。
おそらく、これは、フィーチャの長方形を中心とした「中央の切り抜き」として実行する必要がありますか?これが何を意味するのか、頭を包み込もうとしています。