일단 아이폰5 기준 단말 좌표
단말 가로 : 320
단말 세로 : 568
카메라 화소가 200만이면
이미지 가로 : 1920
이미지 세로 : 1080
카메라 해상도가 photo면 (5기준 1200만)
이미지 가로 : 4032
이미지 세로 : 3024
단말 가로 세로 비율은 568/320해서 1.775
200만 화소의 경우 1920/1080해서 1.7777777777777777
photo 해상도의 경우 4032/3024해서 1.3333333333333333
모두 비율이 다르다.
200만 화소로 할경우는 화면에 꽉 차게 카메라 뷰를 띄운다면 얼추 맞겠지만
단말 가로/세로 비율보다 이미지 가로/세로 비율이 크므로 영상 앞 뒤로 오차가 발생하고,
photo해상도의 경우 단말 가로/세로 비율보다 이미지 가로/세로 비율이 짧으므로 영상 위 아래로 오차가 발생한다.
이를 계산해보면
200만 화소의 경우 영상 앞뒤로 오차가 발생하므로 오차가 발생하지 않는 단말 가로 기준으로 하자
320 : 1080 = x : 1920 이므로 x 는 568.88888888888로 대충 0.9 픽셀 정도 차이난다
이는 앞뒤로 차이나는 것이기 때문에 얼추 0.45픽셀정도 차이난다고 보면 된다.
photo해상도의 경우 영상 위 아래로 오차가 발생하므로 오차가 발생하지 않는 단말 세로 기준으로 하자
568 : 4032 = x : 3024 이므로 x는 462로 320보다 162픽셀이나 차이가 나게 된다.
이는 위 아래로 차이나는 것이기 때문에 얼추 81픽셀정도 차이난다고 보면 된다.
따라서 화면좌표를 이미지 좌표로 변환할 때
이미지 좌표를 화면좌표로 변환할 때 위의 픽셀 차를 반영하지 않으면 원하는 좌표가 제대로 나오지 않는다.
'프로그래밍 > iOS' 카테고리의 다른 글
[iOS] XCode8에서 Coredata사용하기 (0) | 2016.11.15 |
---|---|
[iOS] 이미지 black & white (0) | 2016.10.26 |
import (0) | 2016.10.05 |
[iOS] 이미지 회전함수(이미지 사이즈도 같이 바뀌게) (0) | 2016.09.22 |
[iOS] camera iOS10 crash (0) | 2016.09.21 |