컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Python/파이썬] ks_c_5601-1987, euc-kr; 소스 파일의 한글 인코딩 ...Python/파이썬] 문자 대소문자 변환, 영문 알파벳 대문자로 소문자로 변경; Upper...C언어] __int64 자리수, unsigned __int64 / long long 숫자(...곱셈 방법/나눗셈 하는 법, 나누기 곱하기 계산 방법; Computer DividePython/파이썬] 리스트 List 를 하나의 변수로 합치기, 변환; 문자열 배열 요소 ...HTML] 일본 웹페이지 소스 보기, 일본어 중국어 사이트 HTM 코드 뷰어 프로그램; S...자바스크립트] 문자열 치환, 문자 바꾸기 (대소문자 구분 없이); JavaScript St...Excel/엑셀 기초] 숫자, 나누기 곱하기 계산 함수는? 나눗셈 곱셈 구하기 방법; Di...포토샵] 바탕 레이어 투명으로 만들기; 백그라운드 레이어를 투명 레이어로 변환; Trans...윈도우용 wget.exe 사용법; 명령행 다운로드 프로그램; wget Command for...

Java/자바] 35mm 카메라 렌즈 화각(FOV) 구하기, 초점 거리(Focal Length)계산[광학/물리/사진

Saturday, December 30, 2006

35mm 필름을 사용하는 카메라의, 렌즈의 초점 거리를 지정해 주면, 그 렌즈의 대각선 화각(畵角; Field of View)을 구하고,

역으로, 대각선 화각을 넣어주면, 초점 거리를 계산하는 소스 코드입니다.

광각 렌즈인 경우에는 촬영 범위가 넓기에 당연히 화각이 크고, 망원 렌즈로 갈수록 화각이 좁습니다.

35mm 카메라의 표준 렌즈는 50mm 렌즈인데, 이 표준 렌즈의 화각은 46도 입니다. 즉 전방 46도 각도의 모든 것을 촬영하는 것입니다. 단, 대각선 방향으로 46도입니다.


사진 Lens 화각(FOV) 계산, 초점 거리 계산법 예제


파일명: Foo.java
public class Foo {
  public static void main(String[] args) {

    // 35mm 필름의 대각선 길이: 43.266615305567875
    double diagonalLength = Math.sqrt( Math.pow(36, 2) + Math.pow(24, 2) );

    // 렌즈 초점 거리 (표준 렌즈 : 50mm)
    double focalLength = 50;




    // 렌즈 화각 (FOV; Field of View = Angle of View) 구하기
    double fov = (2 * Math.atan(diagonalLength / (2 * focalLength))) * 180 / Math.PI;
    System.out.format("%.2f mm 렌즈의 대각선 화각은 %.2f 도입니다%n", focalLength, fov);


    // 화각으로 렌즈 초점 거리 구하기
    double focal = diagonalLength / (2 * Math.tan(Math.PI * fov / 360));
    System.out.format("대각선 화각이 %.2f 도인 렌즈의 초점 거리는 %.2f mm 입니다%n", fov, focal);


  }
}



컴파일 및 실행 결과:
D:\Z>javac Foo.java && java Foo
50.00 mm 렌즈의 대각선 화각은 46.79 도입니다
대각선 화각이 46.79 도인 렌즈의 초점 거리는 50.00 mm 입니다

D:\Z>


double focalLength = 50;
소스의 이 부분을

double focalLength = 24;
이렇게 바꾸면,

D:\Z>javac Foo.java && java Foo
24.00 mm 렌즈의 대각선 화각은 84.06 도입니다
대각선 화각이 84.06 도인 렌즈의 초점 거리는 24.00 mm 입니다

D:\Z>

이런 결과가 나옵니다. 24mm 렌즈는 초광각에 가까운 매우 넓은 광각 렌즈입니다. (광각 렌즈 매니아들은 24mm 렌즈를 자신만의 표준 렌즈로 삼는 사람도 있더군요. 그렇지만 24mm 렌즈는 원근의 왜곡이 좀 심합니다.)



그리고 다음 방법으로, 필름이나 CMOS/CCD 의 대각선 길이를 구할 수 있습니다: ▶▶ Java/자바/수학] 사각형 대각선 길이 구하기, 직사각형/정사각형; Diagonal Length Rectangle



▶▶ 매스매티카 Mathematica, 렌즈 화각 FOV 계산; 광학 Field of View





0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top