Вы не можете выразить перспективное преобразование с помощью аффинного преобразования. Однако в CoreImage вы можете использовать ImageUnit (имя CoreImage для того, что вы обычно называете «фильтром»), чтобы выполнить перспективное преобразование изображения (и многих других интересных вещей).
См. CIPerspectiveTransform и ознакомьтесь с разделом о фильтрах CoreImage в руководстве разработчика CoreImage. Это должно помочь вам.
В основном то, что вы делаете, это ...
perspectiveTransform = [CIFilter filterWithName:@"CIPerspectiveTransform"];
[perspectiveTransform setDefaults];
[perspectiveTransform setValue: myCIImage forKey: @"inputImage"];
[perspectiveTransform setValue: myToLeft forKey: @"inputTopLeft"];
// ... also set inputTopRight, inputBottomLeft and inputBottomRight
// if you have the coordinates of the corner points you can create
// CIVector instances with
// + (CIVector *)vectorWithX:(CGFloat)x Y:(CGFloat)y
// ...
result = [perspectiveTransform valueForKey: @"outputImage"];