2012-08-12 5 views
4

그림에서 CIDetector를 사용하여 얼굴을 찾습니다.iOS objective C 절대 좌표 위치에서 내보기 좌표계로 좌표 변환

반환하는면의 좌표는 이미지 파일의 절대 좌표입니다 (이미지 크기는 화면 크기보다 훨씬 큽니다).

converRect : toView 명령을 사용하려고했습니다. 이미지 자체는 UIView가 아니므로 명령이 작동하지 않으며, 마지막으로 이미지가 표시되는 몇 가지 뷰가 서로 내부에 임베드되어 있습니다.

이미지에서 발견 된 얼굴의 경계를 삽입 된 이미지의 화면에 표시된 얼굴의 정확한 위치로 변환하고 싶습니다.

어떻게 수행 할 수 있습니까?

감사합니다. The image being shown on the phone - the image is scaled to fit the screen with aspect fit

답변

8

CIDetecter (CoreImage)의 좌표가 UIKit 좌표를 기준으로 반전됩니다. iOS Face Detection에는 많은 튜토리얼이 있지만 대부분은 불완전하거나 좌표가 엉망입니다. 다음은 올바른 것입니다. http://nacho4d-nacho4d.blogspot.com/2012/03/coreimage-and-uikit-coordinates.html

참고 사항 : 튜토리얼에서는 작은 이미지를 사용하므로 결과 좌표가 이미지의 화면 (UIImageView) 표현에 맞게 조정될 필요가 없습니다. iPad 카메라로 찍은 사진을 사용한다고 가정하면 원본 이미지의 크기에 따라 좌표를 조정해야합니다 (얼굴 인식 루틴을 실행하기 전에 크기를 줄이지 않는 한 나쁜 아이디어는 아닙니다). 올바른 방향으로 이미지를 회전해야 할 수도 있습니다. UIImagePickerController camera preview is portrait in landscape app

그리고이 대답은 '화면 맞춤'을 사용하여 UIImageView에 제시 할 때 이미지의 비율을 찾기위한 좋은 루틴이 있습니다 : How to get the size of a scaled UIImage in UIImageView?이 답변 중 하나의 루틴이/스케일링 회전 여기

CIDetector 좌표를 전체 크기 이미지에서 UIImageView에 표시된 축소 된 이미지로 매핑하려면 눈금을 사용해야합니다.