이하, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 설명한다. 그러나 청구된 발명의 범위를 도면에 도시된 예시나 이하의 기재에 의해 한정되어서는 안된다.
<제1 실시예>
이하, 도면을 참조하여 본 발명의 제1 실시예를 설명한다.
도 1은 본 실시예에 따른 디지털 카메라(1)의 외관도이다. 디지털 카메라(1)의 본체(2)의 상면에는 셔터 키(4)가 설치되어 있다. 또한, 디지털 카메라(1)의 본체(2)의 앞면에는, 광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)가 설치되어 있다.
셔터 키(4)는, 이른바 반누름 기능(half press shutter function)을 구비한 것이며, 핀트 조작을 위한 반누름 조작과 촬영 지시(촬영 화상 데이터의 기록 지시)를 위한 완전 누름 조작(full press operation)이 가능하도록 구성되어 있다.
광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)는, 광학 렌즈 장치(5A)의 광축과 광학 렌즈 장치(5B)의 광축이 거리 g(mm)만큼 이격되도록 배치되어 있다.
도 2는 디지털 카메라(1)의 각 부분의 기능을 나타낸 블록도이다. 도 2를 참조하여 디지털 카메라(1)의 전기적인 구성을 설명한다.
디지털 카메라(1)는 장치 전체를 제어하는 CPU(8)를 중심으로 구성되어 있다. CPU(8)에는 광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)가 접속되어 있다. 광학 렌즈 장치(5A)에는 CCD(6A)가 접속되어 있다. 광학 렌즈 장치(5B)에는 CCD(6B)가 접속되어 있다. CCD(6A)와 CCD(6B)에는 화상 처리부(7)가 접속되어 있다. CPU(8)에는, 화상 처리부(7), 메모리 카드(11), DRAM(10), 플래시 메모리(9), 표시부(12) 및 키 블록(13)이 접속되어 있다.
광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)는, 각각이 피사체의 광상을 결상하는 장치이다. 광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)는, 각각이 도시하지 않은 포커스 렌즈 및 줌 렌즈로 이루어지는 촬영 렌즈와, 이들 촬영 렌즈를 구동하는 도시하지 않은 구동 기구에 의해 구성되어 있다. 광학 렌즈 장치(5A)의 광축과 광학 렌즈 장치(5B)의 광축은 평행하게 되어 있다. 광학 렌즈 장치(5A)의 구성과 광학 렌즈 장치(5B)의 구성은 동일하다. 그리고, 광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)의 초점 거리는 각각 f(mm)이다.
CCD(6A)는, 광학 렌즈 장치(5A)에 의해 결상된 피사체의 광상을 광전 변환하여 촬상 신호를 생성하는 촬상 소자이다. CCD(6A)는, CCD(6A)의 촬상면의 중심이 광학 렌즈 장치(5A)의 광축 상에 있도록 배치되어 있다. CCD(6B)는, 광학 렌즈 장치(5B)에서 결상된 피사체의 광상을 광전 변환하여 촬상 신호를 생성하는 촬상 소자이다. CCD(6B)는, CCD(6B)의 촬상면의 중심이 광학 렌즈 장치(5B)의 광축 상에 있도록 배치되어 있다. CCD(6A)의 구성과 CCD(6B)의 구성은 동일하다.
화상 처리부(7)는, CCD(6A)와 CCD(6B)에 의해 각각 생성된 촬상 신호를 샘플링하여 노이즈를 제거하고 디지털 신호로 변환한다. 화상 처리부(7)는, 디지털 신호로 변환된 촬상 신호에 대하여 휘도 신호 처리 등의 데이터 처리를 행한다. 화상 처리부(7)는, 휘도 신호 처리 등이 행해진 디지털 신호에 대하여 색 분리 등의 색 처리를 행하고, Y(휘도 신호), Cb(청색차 신호, blue color difference signal), Cr(적색차 신호, red color difference signal)의 촬영 화상 데이터를 생성한다. 또한, 화상 처리부(7)는, 촬영 화상 데이터의 압축, 및 압축되어 있는 촬영 화상 데이터의 신장(expansion) 등의 각종 화상 처리를 행한다.
CPU(중앙 처리 장치)(8)는 디지털 카메라(1)의 전체 제어를 행한다. CPU(8)는 플래시 메모리(9)에 저장된 프로그램과 협동하여, DRAM(10)을 작업용 메모리로 서 사용하여 동작한다.
플래시 메모리(9)에는, CPU(8)에 의한 디지털 카메라(1)의 AF 제어, AE 제어 등에 필요한 프로그램과 데이터가 저장되어 있다. 플래시 메모리(9)에는, 후술하는 흐름도에 나타내는 제어를 실행하기 위한 프로그램이나 데이터(상기 거리 g나 초점 거리 f나 허용 착란원(錯亂圓)의 직경 c의 정보 등)가 저장되어 있다. 또한, 플래시 메모리(9)에는 촬영 화상 데이터를 기록할 수도 있다.
DRAM(10)은, 순차적으로 표시되는 촬영 화상 데이터를 일시적으로 기억하는 버퍼 메모리로서 사용된다. DRAM(10)은, CPU(10)가 처리를 실행할 때 작업용 메모리로서도 사용된다.
메모리 카드(11)는, 촬영 지시가 내려질 때마다, CCD(6A)와 CCD(6B)에 의해 촬영된 피사체상의 신호로부터 생성된 촬영 화상 데이터가 각각 기록되는 기록 매체이다. 메모리 카드(11)는 디지털 카메라(1)의 본체(2)에 착탈 가능하게 접속되어 있다.
표시부(12)는, 도시하지 않은 액정 디스플레이와 그 구동 회로로 구성되어 있다. 디지털 카메라(1)가 촬영 대기 상태에 있을 때는, CCD(6A)에 의해 촬상된 피사체상을 라이브 뷰 화상으로서 액정 디스플레이에 표시한다. 또한, 표시부(12)는, 디지털 카메라(1)가 촬영 화상 데이터를 재생할 때는, 메모리 카드(11)로부터 읽어내어진 촬영 화상 데이터에 기초한 화상을 액정 디스플레이에 표시한다. 또한, 표시부(12)는 터치 패널의 기능도 구비하고 있다.
키 블록(13)은, 셔터 키(4)나 도시하지 않은 모드 키, SET 키, 텐 키, 촬영 모드 선택 키 등의 복수의 조작 키로 구성된다. 키 블록(13)은, 사용자의 키 조작에 따른 조작 신호를 CPU(8)로 송출한다.
도 3을 참조하여, 본 실시예에 따른 디지털 카메라(1)의 동작을 설명한다. 사용자가 키 블록(13)에 대한 소정의 조작에 의해 촬영 모드를 설정하면, CPU(8)는, 플래시 메모리(9)로부터 읽어내어 DRAM(10)에 전개한 프로그램과 협동하여, 도 3의 흐름도에 나타낸 촬영 모드의 처리를 실행한다.
도 4를 참조하여 본 실시예에의 촬영 상황을 설명한다. 도 4의 (A)는, 디지털 카메라(1)와 각각의 피사체를 위쪽에서 본 도면이다. 도 4의 (A)에 나타낸 바와 같이, 본 실시예에서의 촬영 장소에는 디지털 카메라(1), 피사체인 인물(41), 인물(42), 자동차(43) 및 건물(44)이 존재한다. 디지털 카메라(1)에 대하여 가까운 순서로, 인물(41), 인물(42), 자동차(43), 건물(44)이 배열되어 있다. 도 4의 (B)에는, 디지털 카메라(1)가 포착할 수 있는 피사체상의 상태를 나타내고 있다.
도 3으로 되돌아와서 설명을 계속한다. 촬영 모드가 설정되면, CPU(8)는, CCD(6A)로부터 순차적으로 찍혀서 DRAM(10)에 순차적으로 축적된 촬영 화상 데이터를 표시부(12)에 라이브 뷰 화상을 표시하는 처리를 개시한다(단계 SA1).
그리고, CPU(8)는, 셔터 키(4)가 반누름되었는지의 여부를 판단하기 위해 대기 상태로 된다(단계 SA2). 이 상태에서, CPU(8)는, 셔터 키(4)가 반누름된 것을 검지하지 않은 경우(단계 SA2; NO), 단계 S1로 처리를 리턴시키고, 라이브 뷰 화상을 계속 표시시킨다. 한편, 사용자에 의해 셔터 키(4)가 반누름되면, CPU(8)는 이 반누름 조작에 따른 조작 신호를 검지함으로써, 셔터 키(4)가 반누름되었다고 판단 한다(단계 SA2, YES).
그러면, CPU(8)는, 즉시 통상의 AF 제어에 의해 포커스 조정을 행한다. 즉, CPU(8)는, CCD(6A)와 CCD(6B)의 각각의 촬영 범위 내에서의 중앙 영역의 포커스 영역을 대상으로 한 핀트 조작을 실행하고, 통상의 AE 제어(이른바 프로그램 AE 제어)에 의해 ISO 감도와 셔터 속도를 조정한다(단계 SA3).
그 후, CPU(8)는, 셔터 키(4)가 완전히 눌러졌는지의 여부를 판단하기 위해 대기 상태로 된다(단계 SA4). 이 상태에서, CPU(8)는, 셔터 키(4)가 완전 누름된 것을 검지하지 않은 경우(단계 SA4; NO), 그대로 대기 상태가 계속된다. 한편, 사용자에 의해 셔터 키(4)가 완전히 눌러지면, CPU(8)는, 이 완전 누름 조작에 따른 조작 신호를 검지함으로써 셔터 키(4)가 완전히 눌려졌다고 판단한다(단계 SA4; YES).
그러면, CPU(8)는, CCD(6A)와 CCD(6B) 각각에 축적되어 있는 피사체상 신호에 대하여 즉시 촬영 처리를 실행하여 2개의 촬영 화상 데이터(50A, 50B)를 생성하고, 생성된 2개의 촬영 화상 데이터(50A, 50B)를 각각 JPEG 방식으로 압축시킨다(단계 SA5).
도 5의 (A)에 촬영 화상 데이터(50A)에 의해 표현되는 촬영 화상[CCD(6A)에 의해 촬영된 촬영 화상]이 나타나 있다. 도 5의 (B)에 촬영 화상 데이터(50B)에 의해 표현되는 촬영 화상[CCD(6B)에 의해 촬영된 촬영 화상]이 나타나 있다.
이들 2개의 촬영 화상은 각각 광학 렌즈 장치(5A)와 광학 렌즈 장치(5B)에 의해 각각 받아들여진 피사체상이므로 시차가 생긴다. 그러므로, 도 5의 (A)에 나 타낸 촬영 화상에서의 각각의 피사체의 위치 관계와, 도 5의 (B)에 나타낸 촬영 화상에서의 각각의 피사체의 위치 관계가 상이하다.
다시 도 3으로 되돌아와서, CPU(8)는, 2개의 촬영 화상 데이터(50A, 50B) 각각에 대하여 헤더 데이터를 생성하고, 헤더 데이터 및 압축된 촬영 화상 데이터로 이루어지는 화상 파일을 2개 생성하고, 생성된 2개의 화상 파일을 메모리 카드(11)에 일단 기록시킨다(단계 SA6).
다음으로, CPU(8)는, 거리 정보 산출 처리(단계 SA7), 거리 정보 보정 처리(단계 SA8)를 행하고, 촬영 모드의 처리를 종료시킨다. 단계 SA7에서의 거리 정보 산출 처리에 대한 상세한 내용과 단계 SA8에서의 거리 정보 보정 처리의 상세한 내용은 후술한다.
도 6을 참조하여, 단계 SA7에서의 거리 정보 산출 처리 시에 이용하는 스테레오법의 원리를 설명한다. 스테레오법은, 2대 이상의 카메라로 피사체를 촬영하고, 삼각 측량의 원리를 사용하여 각 화상에 찍힌 피사체의 위치의 차이로부터 3차원 정보를 얻기 위한 주지의 방법이다. 도 6은 스테레오법의 원리를 설명하기 위한 개념도이다.
도 6에서, OA는 실제 공간에서 CCD(6A)의 촬상면(수광면)의 중심이 존재하는 위치이다. OB는 실제 공간에서 CCD(6B)의 촬상면(수광면)의 중심이 존재하는 위치이다. ZA는 광학 렌즈 장치(5A)의 광축이며, ZB는 광학 렌즈 장치(5B)의 광축이다. 전술한 바와 같이, 광축 ZA와 광축 ZB는 평행하며, 이들은 거리 g(mm)만큼 이 격되어 있다.
좌표면 CA는 CCD(6A)의 촬상면의 좌표를 규정한다. 좌표면 CA는 광축 ZA와 직교하고, 좌표면 CA의 원점 OA는 광축 ZA 상에 배치되어 있다. 좌표면 CA는, 수평 방향을 나타내는 u축과 수직 방향을 나타내는 v축에 의해 규정된다. 좌표면 CA 상의 임의의 좌표를 (u, v)라고 한다.
좌표면 CB는 CCD(6B)의 촬상면의 좌표를 규정한다. 좌표면 CB는 광축 ZB와 직교하고, 좌표면 CB의 원점 OB는 광축 ZB 상에 배치되어 있다. 좌표면 CB는 수평 방향을 나타내는 u'축과 수직 방향을 나타내는 v'축에 의해 규정된다. 좌표면 CB 상의 임의의 좌표를 (u', v')라고 한다.
지금, 도 6에 나타낸 바와 같이, CCD(6A) 및 CCD(6B)로부터 이격된 지점에 피사체(60)가 존재하는 경우를 고려한다. 실제 공간에서의 피사체(60)의 위치의 좌표를 (X, Y, Z)라고 한다. 그리고, 피사체(60)로부터의 광상(61, 61)이, 좌표면 CA 상의 좌표 (u, v)로 나타내는 위치(62A)에서 CCD(6A)에 의해 수광되고, 좌표면 CB 상의 좌표 (u', v')로 나타내는 위치(62B)에서 CCD(6B)에 의해 수광되는 것으로 한다.
그러면, 실제 공간에서의 피사체(60)의 좌표 (X, Y, Z)의 각각의 값은, 각각 하기 식 (1)에 의해 나타내어지는 것으로 알려져 있다. 다만, 하기 식 (1)에서, g는 전술한 광축 ZA와 광축 ZB 사이의 거리이며, f는 광학 렌즈 장치(5A)[광학 렌즈 장치(5B)]의 초점 거리이다.
식 (1)
X = g·u/(u-u')
Y = g·v/(u-u')
Z = g·f/(u-u')
전술한 바와 같이 하여, 2개의 CCD(6A, 6B)에 의해 각각 촬상되는 2개의 화상에 찍힌 피사체의 위치의 차이로부터 피사체의 3차원 정보를 얻는 방법이 스테레오법이다.
다음으로, 도 7에 나타내는 흐름도를 참조하여, 단계 SA7의 거리 정보 산출 처리의 상세한 내용을 설명한다. 본 실시예에서는, 단계 SA7의 처리에서, 전술한 스테레오법의 원리를 이용하여 촬영 시의 피사체와 디지털 카메라(1)와의 거리를 산출한다.
단계 SA6의 처리 후, CPU(8)는, 메모리 카드에 기록된 촬영 화상 데이터(50A)와 촬영 화상 데이터(50B)를 읽어내고, 읽어낸 이들 촬영 화상 데이터를 DRAM(10)에 유지시킨다(단계 SB1).
다음으로, CPU(8)는, DRAM(10)에 유지된 촬영 화상 데이터(50A)에 의해 표현되는 촬영 화상[도 5의 (A)에 나타내는 촬영 화상]에서의 모든 특징점을 검출하고, 검출된 특징점을 표현하는 화상 데이터를 DRAM(10)에 유지시킨다(단계 SB2). 여기서, 특징점은 주위의 영역에 비해 색이나 휘도가 커서 다른 영역과 식별할 수 있는 영역이다. 예를 들면, 촬영 화상에 찍힌 인물의 눈이나 입의 영역이 특징점으로 된다.
다음으로, CPU(8)는, 촬영 화상 데이터(50A)에 의해 표현되는 촬영 화상으로 부터 검출된 모든 특징점 중에서, 한번도 지정되지 않은 특징점을 1개 지정한다(단계 SB3).
다음으로, CPU(8)는, 단계 SB3의 처리에서 지정된 특징점의 화상 데이터(50A) 상의 좌표 (u, v)를 특정하고, 특정된 특징점의 좌표를 DRAM(10)에 유지시킨다(단계 SB4).
다음으로, CPU(8)는, 단계 SB4의 처리에서 특정된 특징점의 좌표 (u, v)에 대응하는, 촬영 화상 데이터(50B) 상의 특징점(대응점)을 검출한다(단계 SB5). 구체적으로는, CPU(8)는, 단계 SB3의 처리에서 지정된 특징점을 표현하는 화상 데이터를 템플레이트 화상(template image)으로서 추출한다. 그리고, CPU(8)는, 촬영 화상 데이터(50B)에서 이 템플레이트 화상을 주사시킨다. CPU(8)는, 촬영 화상 데이터(50B)와 템플레이트 화상의 상관 연산을 행하고, 가장 상관성(일치도)이 높은 영역을, 촬영 화상 데이터(50)에서의 대응점, 즉 촬영 화상 데이터(50B)에서의 촬영 화상 데이터(50A)의 특징점에 대응하는 점으로서 검출한다.
다음으로, CPU(8)는, 단계 SB5의 처리에서 검출된 대응점의 좌표 (u', v')를 특정하고, 특정된 특징점의 좌표를 DRAM(10)에 유지시킨다(단계 SB6).
다음으로, CPU(8)는, 단계 SB3의 처리에서 지정된 특징점의 실제 공간에서의 좌표 (X, Y, Z)를 산출한다(단계 SB7). 구체적으로는, CPU(8)는, DRAM(10)에 유지되어 있는 특징점의 좌표와 대응점의 좌표의 각 값 u, v, u', v'와, 플래시 메모리(9)에 미리 기록되어 있는 광학 렌즈(5A)와 광학 렌즈 장치(5B) 사이의 거리 정보 g와 초점 거리 정보 f를 사용하여, 상기 식 (1)에 따라, 단계 SB3의 처리에서 지정된 특징점의 실제 공간에서의 좌표 (X, Y, Z)를 산출한다.
다음으로, CPU(8)는, 단계 SB3의 처리에서 지정된 특징점 정보와 단계 SB8의 처리에서 산출된 특징점의 좌표 정보를 대응시킨 점군 정보(81)를, DRAM(10)에 유지시켜 둔다(단계 SB8).
다음으로, CPU(8)는, 단계 SB3의 처리에서 한번도 지정되지 않은 특징점이 있는지의 여부를 판단한다(단계 SB9). CPU(8)는, 단계 SB3의 처리에서 한번도 지정되지 않은 특징점이 있다고 판단하면, 단계 SB3으로 처리를 리턴시킨다(단계 SB9; YES).
단계 SB3으로 처리가 리턴되면, CPU(8)는, 단계 SB3부터 단계 SB8까지의 각 처리를 반복하여, 지정되어 있지 않은 특징점의 실제 공간에서의 좌표를 산출하고 기록한다. 이와 같이 하여, CPU(8)는, 단계 SB2의 처리에서 검출된 모든 특징점에 대응하는 실제 공간에서의 좌표를 산출한다.
도 8에, 피사체의 특징점 정보와 그 좌표 정보를 대응시킨 점군 정보(81)의 상태가 나타내어져 있다. 도 8에 나타낸 바와 같이, 예를 들면, 인물(41)의 특징점(1)에 대응하는, X 좌표의 값은 0.05(m), Y 좌표의 값은 0.10(m), Z 좌표의 값은 2.00(m)이다.
CPU(8)는, 모든 특징점이 지정되면, 한번도 지정되지 않은 특징점이 없다고 판단하여(단계 SB9: NO), 도 7의 흐름도에 나타내는 거리 정보 산출 처리를 종료시킨다.
다음으로, 도 9에 나타내는 흐름도를 참조하여, 단계 SA8의 거리 정보 보정 처리의 상세한 내용을 설명한다.
단계 SA7의 처리 후, CPU(8)는, DRAM(10)에 유지되고 있는 점군 정보(81)를 사용하여, 각각의 거리 정보와 동일한 거리 정보에 대응하는 특징점의 개수의 대응 관계를 나타내는 거리별 특징점 정보를 생성한다(단계 SC1).
본 실시예에서는, 이 거리별 특징점 정보를 생성할 때, 단계 SA7의 처리에서 산출된, 특징점의 실제 공간에서의 좌표 (X, Y, Z) 중 Z 좌표의 값을 거리 정보로서 사용한다. CPU(8)는, 각각의 특징점에 대응하는 거리 정보(Z 좌표의 값)를 모두 특정하고, 동일한 거리 정보에 대응하는 특징점의 개수 정보를 산출한다. 그리고, CPU(8)는, 거리 정보마다 산출한 특징점의 개수 정보를 나타내는 점을 좌표 평면에 플롯팅해 나감으로써, 거리별 특징점 정보로서의 특징점의 분포도를 생성한다.
도 10의 (A)에, CPU(8)에 의해 생성된 특징점의 분포도가 나타나 있다. 도 10의 (A)에 나타내는 특징점의 분포도에서, 가로 축은 실제 공간에서의 디지털 카메라(1)로부터 피사체의 각 특징점의 존재 영역까지의 거리를 나타내고, 세로 축은 각 거리에서 존재하는 피사체의 특징점의 개수를 나타낸다. 도 10의 (A)에서, 세로 축의 방향은 상측 방향이며, 가로축의 방향은 우측 방향이다.
도 10의 (A)의 특징점의 분포도에는, 분포 곡선(90)(굵은 실선으로 나타낸 곡선)이 나타내어져 있다. 이 분포 곡선(90)은, 플롯팅된, 각각의 거리 정보에 대응하는 특징점의 개수 정보를 나타낸 점을 곡선으로 연결한 것이다.
분포 곡선(90) 상에는 3개의 피크 부분(peak portion)(91, 92, 93)이 존재한 다. 도 10의 (A)에서, 피크 부분(91)은, 도 4의 (A)에 나타낸 디지털 카메라(1)로부터의 거리가 가장 짧은 지점에 위치하고 있던 인물(41)과 인물(42)의 특징점의 존재를 나타내고 있다. 피크 부분(92)은, 인물(41, 42) 다음으로, 디지털 카메라(1)로부터의 거리가 짧은 지점에 위치하고 있던 자동차(43)의 특징점의 존재를 나타내고 있다. 피크 부분(93)은, 디지털 카메라(1)로부터의 거리가 가장 먼 지점에 위치하고 있는 건물(44)의 특징점의 존재를 나타내고 있다.
또한, 도 4의 (A)에 나타낸 바와 같이, 촬영 시에는 디지털 카메라(1)로부터 인물(41)까지의 사이에는 피사체(특징점)가 존재하지 않았다. 그러므로, 도 10의 (A)에 나타낸 바와 같이, 원점으로부터 피크 부분(91)[인물(41)의 특징점의 존재를 나타내는 피크]까지의 거리 범위에서는, 분포 곡선(90)은 존재하지 않는다.
마찬가지로 도 4의 (A)에 나타낸 바와 같이, 촬영 시에는 자동차(43)로부터 건물(44)까지의 사이에는 피사체(특징점)가 존재하지 않았다. 그러므로, 도 10의 (A)에 나타낸 바와 같이, 피크 부분(92)과 피크 부분(93) 사이의 범위에서는 분포 곡선(90)의 값(특징점의 개수)은 모두 "O"으로 되어 있다.
도 9로 되돌아와서, CPU(8)는, 분포 곡선(90)의 변화 개시점을 검출한다(단계 SC2). 구체적으로는, 먼저 CPU(8)는, 분포 곡선(90)으로부터, 각각의 특징점의 개수 정보 중 최소값에 가까운 순서로, 최소값이 되는 개수 정보 및 최소값에 가까운 복수의 개수 정보를 순차적으로 특정한다. 다음으로, CPU(8)는, 특정된 각각의 개수 정보에 대응하는 거리 정보를 모두 특정한다.
본 실시예에서는, CPU(8)는, 각각의 특징점의 개수 정보 중 최소값 및 최소 값에 가까운 복수의 개수 정보에 대응하는 각각의 거리 정보로서는, 분포 곡선(90)의 시점(94)에 대응하는 거리 정보, 피크 부분(92)의 종점(95)에 대응하는 거리 정보, 피크 부분(93)의 시점에 대응하는 거리 정보, 피크 부분(93)의 종점에 대응하는 거리 정보의 4개의 거리 정보가 특정된다.
그리고, CPU(8)는, 특정된 4개의 거리 정보 중 가장 작은 거리 정보에 대응하는 점을 변화 개시점으로서 검출한다. 본 실시예에서는, 도 10의 (A)에 나타낸 바와 같이, 분포 곡선(90)의 시점(94)이 변화 개시점으로서 검출된다.
다음으로, CPU(8)는 분포 곡선(90)의 변화 종료점을 검출한다(단계 SC3). 구체적으로는, CPU(8)는, 분포 곡선(90)으로부터, 먼저 검출된 4개의 각각의 거리 정보 중, 2번째로 작은 거리 정보에 대응하는 점을 검출한다. 본 실시예에서는, 도 10의 (A)에 나타낸 바와 같이, 피크 부분(92)의 종점(95)이 변화 종료점으로서 검출된다. 본 실시예에서는, 변화 종료점(95)에 대응하는 거리 정보는 4.20(m)이다.
다음으로, CPU(8)는, DRAM(10)에 유지되고 있는 점군 정보(81)에 포함되는 거리 정보에 대하여, 변화 종료점(95)에 대응하는 거리 정보보다 큰 거리 범위에 속하는 거리 정보 전체를, 변화 종료점(95)에 대응하는 거리 정보[4.20(m)]로 변경하는 보정을 행한다(단계 SC4).
단계 SC4의 처리에 의해, 도 10의 (B)에 나타낸 바와 같이, 변화 종료점(95) 이후에 존재하는 피크 부분(93)[건물(44)의 특징점의 존재를 나타내는 피크]에 대응하는 거리 정보 전체가, 변화 종료점(95)에 대응하는 거리 정보[4.20(m)]가 되도 록 보정된다. 이로써, 도 10의 (B)에 나타낸 바와 같이, 피크 부분(93)의 정보는 피크 부분(931)의 정보가 되도록 보정된다.
도 11의 (A)에, 단계 SC4의 처리에 의해 보정된 점군 정보(82)의 상태가 나타나 있다. 도 8에 나타낸 원래의 점군 정보(81)에 비해, 도 11의 (A)에 나타낸 보정 후의 점군 정보(82)에서는, 건물(44) 각각의 특징점에 대응하는 모든 거리 정보(Z 좌표의 값)가 변화 종료점(95)의 거리 정보인 4.20(m)이 되도록 보정되어 있다.
도 12를 참조하여, 단계 SC4의 처리에 대하여 보충 설명을 한다. 도 12는 단계 SC4의 처리가 행해진 후의 촬영 환경의 가상적인 변화를 나타낸 개념도이다.
단계 SC4의 처리에 의해, 점군 정보에서 건물(44)의 각각의 특징점에 대응하는 거리 정보가 작아지도록 보정된다. 그러므로, 보정 후의 점군 정보(82)에 기초한 가상적인 촬영 환경은, 도 12에 나타낸 바와 같이, 마치 디지털 카메라(1)의 위치에 건물(44)의 위치가 근접한 것처럼 된다.
그리고, 점군 정보에서, 건물(44)의 모든 특징점에 대응하는 각각의 거리 정보가 변화 종료 지점(95)에 대응하는 거리 정보가 되고 균일화된다. 그러므로, 도 12에 나타낸 바와 같이, 건물(44)의 안길이가 없어지고, 건물(44)은 마치 평면(51)처럼 되어 있다.
다시 도 9로 되돌아와서, CPU(8)는, 단계 SC4의 처리에 이어서, 변화 개시점(94)의 거리 정보 이상이면서 변화 종료점(95)의 거리 정보 이하의 거리 정보로 구성되는 거리 범위를, 3차원 표시 거리 범위로서 설정한다(단계 SC5). 3차원 표 시 거리 범위는, 후술하는 재생 모드에서 촬영된 피사체상이 3차원적으로 표시되는 거리 범위이다. 도 10의 (B)에는, 본 실시예에서의 3차원 표시 거리 범위(96)이 나타나 있다.
다음으로, CPU(8)는, 설정된 3차원 표시 거리 범위(96)가 소정의 임계값 이상인지의 여부를 판단한다(단계 SC6). CPU(8)는, 설정된 3차원 표시 거리 범위(96)가 소정의 임계값 미만이면(단계 SC6; NO), 단계 SC8로 처리를 진행시킨다. 본 실시예에서 임계값은 1(m)이다. 그러나, 임계값은 1(m)이 아닐 수도 있다.
한편, 설정된 3차원 표시 거리 범위(96)가 소정의 임계값 이상이면(단계 SC6; YES), CPU(8)는, 3차원 표시 거리 범위(96)가 임계값[1(m)]과 같은 값의 거리 범위로 되도록, 보정 후의 점군 정보(82)에 포함되는 거리 정보 중 3차원 표시 거리 범위(96)에 속하는 거리 정보를 보정한다(단계 SC7).
구체적으로는, CPU(8)는, 보정 전의 3차원 표시 거리 범위(96)에 속하는 각각의 거리 정보의 평균값을 미리 산출해 둔다. 다음으로, CPU(8)는, 보정 전의 3차원 표시 거리 범위(96)에 포함되는 각각의 거리 정보에 대하여, 수직선 상에서 인접하는 각각의 거리 정보 사이의 차분값의 비율을 모두 미리 산출해 둔다.
이들을 산출 처리한 후, CPU(8)는, 보정 전의 3차원 표시 거리 범위(96)에 속하는 모든 거리 정보가, 임계값[1(m)]과 같은 값의 거리 범위에 포함되도록, 점군 정보(82)에서의 3차원 표시 거리 범위(96)에 속하는 각각의 거리 정보를 보정한다.
단계 SC7의 처리 시에, CPU(8)는, 보정 전의 3차원 표시 거리 범위(96)에 속 하는 거리 정보의 평균값과 보정 후의 3차원 표시 거리 범위(961)에 속하는 거리 정보의 평균값이 동일하게 되도록 한다.
단계 SC7의 처리 시에, CPU(8)는, 보정 후의 3차원 표시 거리 범위(961)에서 수직선 상에서 인접하는 각각의 거리 정보의 차분값의 비율이, 보정 전의 3차원 표시 거리 범위(96)에서 수직선 상에서 인접하는 각각의 거리 정보의 차분값의 비율이 동일하게 되도록 한다.
단계 SC7의 처리 시에, CPU(8)는, 보정 전의 3차원 표시 거리 범위(96)에 속하는 각각의 거리 정보의 대소 관계와, 보정된 각각의 거리 정보[3차원 표시 거리 범위(961)에 속하는 각각의 거리 정보]의 대소 관계가 변하지 않도록 한다.
도 10의 (C)에, 단계 SC7의 처리에 의해 보정된 3차원 표시 거리 범위(961)가 나타나 있다. 도 10의 (C)에 나타낸 바와 같이, 보정된 3차원 표시 거리 범위(961)는, 보정되기 전의 3차원 표시 거리 범위(96)보다 작게 되어 있다.
도 11의 (B)에, 단계 SC7의 처리에 의해 보정된 점군 정보(83)가 나타나 있다. 도 11의 (B)에 나타낸 바와 같이, 보정 후의 3차원 표시 거리 범위(961)에 속하던 거리 정보(Z 좌표의 값), 즉, 인물(41), 인물(42), 자동차(43)의 각 특징점에 대응하는 각각의 거리 정보(Z 좌표의 값)의 수직선 상에서의 존재 범위가 보정 전보다 작게 되어 있다.
단계 SC6의 처리 또는 단계 SC7의 처리 후에, CPU(8)는, 보정된 점군 정보(82)[또는 점군 정보(83)]를, 촬영 화상 데이터(50A)와 촬영 화상 데이터(50B) 각각의 헤더 데이터에 기록하고(단계 SC8), 도 9의 흐름도에 나타낸 거리 정보 보 정 처리를 종료시킨다.
다음으로, 도 13에 나타내는 흐름도를 참조하여, 본 실시예에 따른 재생 모드의 처리에 대하여 설명한다. 사용자가 키 블록(13)에 대한 소정의 조작에 의해 재생 모드를 설정하면, CPU(8)는, 플래시 메모리(9)로부터 읽어내어 DRAM(10)에 전개(展開)한 프로그램과의 협동에 의해, 도 13의 흐름도에 나타낸 재생 모드의 처리를 실행한다.
재생 모드가 설정되면, CPU(8)는, 촬영 화상 데이터에 부수되는 헤더 데이터로부터 단계 SA8의 처리에 의해 보정된 점군 정보(82)[또는 점군 정보(83)]를 읽어내고, 읽어낸 점군 정보를 DRAM(10)에 유지시킨다(단계 SD1).
다음으로, CPU(8)는, 주지의 Delaunay법에 따라 DRAM(10) 상에서 읽어내어진 점군 정보를 사용하여 3각형 다각형 모델을 생성한다(단계 SD2). 3각형 다각형 모델을 생성할 때는, 생성되는 3각형이 정3각형에 근접하는 특징점의 관계가 우선적으로 행해진다. 다음으로, CPU(8)는, 주지의 텍스처 맵핑법을 이용하여, 생성된 3각형 다각형 모델의 텍스처 데이터를 붙여서 3차원 화상을 생성한다(단계 SD3).
다음으로, CPU(8)는, 생성된 3차원 화상을 표시부(12)에 표시하게 한다(단계 SD4). 다음으로, CPU(8)는, 생성된 3차원 화상 상의 각각의 특징점의 좌표 정보를, 촬영 화상 데이터(50A)와 촬영 화상 데이터(50B)의 각각의 헤더 데이터에 기록하고(단계 SD5), 도 13의 흐름도에 나타낸 재생 모드를 종료시킨다.
도 14에 본 실시예에 의해 생성되는 3차원 화상의 예가 나타내어져 있다. 본 실시예에 의해 생성되는 3차원 화상은, 도 22에 나타내는 종래 기술에 의해 생 성된 3차원 화상과 비교하여, 주요 피사체인 말(馬)의 동상과 배경인 건물의 거리가 작게 되어 있다. 그러므로, 본 실시예에 의해 생성되는 3차원 화상은, 사용자가 각각의 피사체의 상태를 용이하게 파악할 수 있는 화상으로 되어 있다. 이는, 단계 SA8의 거리 정보 보정 처리에서, 점군 정보에서의 변화 종료점의 거리 정보보다 큰 거리 정보가 작아지도록 보정됨으로써, 배경이 되는 피사체와 주요 피사체의 거리 정보가 작아졌기 때문이다.
또한, 도 14에 나타내는 3차원 화상에서는, 주요 피사체인 말의 동상은 3차원적으로 표현되어 있지만, 배경인 건물은 평면적으로 표현되어 있다. 이로써, 사용자는 주요 피사체의 형상을 3차원적으로 육안으로 관찰할 수 있으며, 배경이 되는 피사체에 대해서는 그 내용을 용이하게 파악할 수 있게 되어 있다. 이는, 단계 SA8의 처리에서, 점군 정보에서의 변화 종료점의 거리 정보보다 큰 거리 정보 모두가 동일한 거리 정보(변화 종료점에 대응하는 거리 정보)로 보정되었기 때문에, 보정 후의 점군 정보에서의 배경 피사체의 특징점에 대응하는 거리 정보가 모두 동일하게 되었기 때문이다.
(변형예)
전술한 제1 실시예에서는, 단계 SC4의 처리에서 CPU(8)가, 변화 종료점(95)의 거리 정보보다 큰 거리 정보 모두가, 동일한 거리 정보[변화 종료점(95)의 거리 정보]로 되도록 점군 정보(81)를 보정하였다. 그러나, CPU(8)는, 변화 종료점(95)의 거리 정보보다 큰 범위에 속하는 거리 정보 각각이 동일한 거리 정보 분만큼 작아지는 보정을 행해도 된다.
이 변형예에서는, 예를 들면 도 10의 (D)에 나타낸 바와 같이, CPU(8)는, 변화 종료점(95)과 피크 부분(93)의 시점이 일치하도록, 피크 부분(93)에 대응하는 거리 정보 각각을, 변화 종료점(95)의 거리 정보와 피크 부분(93)의 시점에 대응하는 거리 정보와의 차분값 만큼 작게 하는 보정을, 점군 정보(81)에 포함되는 각각의 거리 정보에 대하여 행한다.
또한, 제1 실시예에서는, 단계 SC7의 처리에서, CPU(8)는, 설정된 3차원 표시 거리 범위(96)가 소정의 임계값 이상이면, 3차원 표시 거리 범위(96)가 소정의 임계값과 같은 값의 거리 범위로 되도록, 점군 정보(82)에 포함되는 거리 정보 중 3차원 표시 거리 범위(96)에 속하는 거리 정보를 보정할 수 있도록 했다.
그러나, CPU(8)는, 단계 SC7의 처리에서, 점군 정보(82)에 포함되는 3차원 표시 거리 범위(96)에 속하는 각각의 거리 정보 Z를, 예를 들면 하기 식 (2)에 따라 보정해도 된다.
식 (2)
Z' = Z - (A-Z)·α
단,
Z: 보정 전의 거리 정보의 값[보정 전의 3차원 표시 거리 범위(96)에 속하는 각각의 거리 정보]
Z': 보정 후의 거리 정보의 값[보정 후의 3차원 표시 거리 범위(961)에 속하는 각각의 거리 정보]
A: 변화 종료점(95)에 대응하는 거리 정보의 값
α: 1 미만의 임의의 자연수
이상 설명한 바와 같이, 제1 실시예 및 그 변형예에서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 변화 종료점(95)의 거리 정보보다 큰 거리 범위에 속하는 거리 정보가 작아지도록 보정하였다. 이와 같이 하면, 피사체가 3차원 표시에 적합하지 않는 경우, 즉 주요 피사체와 배경 피사체와의 거리가 큰 경우에도, 점군 정보에서의 주요 피사체와 배경 피사체와의 거리 정보가 작아진다. 이로써, 점군 정보를 사용하여 생성되는 3차원 화상에서는, 3차원 화상을 구성하는 3각형 다각형이 일그러진 형상이 되는 것을 회피할 수 있다. 그 결과, 본 실시예에서는, 피사체가 3차원 표시에 적합하지 않은 경우에도, 사용자가 각각의 피사체의 상태를 용이하게 파악할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제1 실시예에 있어서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 변화 종료점(95)의 거리 정보보다 큰 거리 정보 모두가 동일한 거리 정보[변화 종료점(95)의 거리 정보]로 되도록 보정하였다. 이와 같이 행하면, 보정된 점군 정보로부터 생성되는 3차원 화상에서는, 예를 들면 주요 피사체를 3차원적으로 표현할 수 있고, 또한 배경 피사체에 대해서는 2차원적으로 표현할 수 있다. 이로써, 사용자는 주요 피사체의 형상을 3차원적으로 육안으로 관찰할 수 있으며, 또한 배경 피사체에 대해서는 그 내용을 용이하게 파악할 수 있다. 그 결과, 본 실시예에 따르면, 사용자가 배경이 된 피사체상의 내용을 용이하게 이해할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제1 실시예에서는, CPU(8)가, 3차원 표시 거리 범위(96)가 소정의 임계값 이상인 경우에는, 3차원 표시 거리 범위(96)가 작아지도록, 점군 정보(82)에 포함되는 거리 정보 중 3차원 표시 거리 범위(96)에 속하는 거리 정보를 보정하였다. 이로써, 3차원 표시 거리 범위(96)에 속하는 특징점 사이의 거리 정보가 과대한 크기인 경우에도, 점군 정보(82)에 대하여, 이 특징점 사이의 거리 정보가 작아지도록 보정이 행해지게 된다. 이렇게 하면, 3차원 화상 상에서 3차원적으로 표현되는 주요 피사체를 구성하는 3각형 다각형이 과대한 크기로 되는 것을 회피할 수 있다. 그 결과, 본 실시예에 의하면, 주요 피사체 등의 안길이가 큰 경우에도, 3차원 화상 상에서 표현되는 주요 피사체를 적정 형상으로 보정할 수 있어서, 시인성이 높은 3차원 화상을 얻을 수 있다.
다음으로, 본 발명의 다른 실시예에 대하여 설명한다. 이하에 설명하는 각 실시예에서는, 단계 SA8의 처리 내용만 전술한 제1 실시예와 상이하고, 디지털 카메라(1)의 전기적 구성과 단계 SA8 외의 처리 내용은 제1 실시예와 동일하다.
<제2 실시예>
도 15에 나타내는 흐름도를 참조하여, 제2 실시예에 따른 거리 정보 보정 처리(단계 SA8의 처리)를 설명한다.
단계 SA7의 처리 후, CPU(8)는, DRAM(10)에 유지되어 있던 점군 정보(81)를 사용하여, 거리별 특징점 정보로서, DRAM(10)에서 특징점의 분포도를 생성한다(단계 SE1). 특징점의 분포도를 생성하는 방법은, 단계 SC1의 처리와 동일하다. 도 14의 (A)에 CPU(8)에 의해 생성된 특징점의 분포도가 나타나 있다.
CPU(8)는, 단계 SC2의 처리와 동일하게 하여, 분포 곡선(90)의 변화 개시점(94)을 검출한다(단계 SE2). 제2 실시예에서도, 도 16의 (A)에 나타낸 바와 같이, 분포 곡선(90)의 시점(94)이 변화 개시점으로서 검출된다.
다음으로, CPU(8)는, 디지털 카메라(1)(촬영 렌즈)로부터 초점이 맞는 피사체 영역(초점 영역)까지의 거리 a를 산출한다(단계 SE3). 구체적으로는, CPU(8)는, 플래시 메모리(9)에 미리 기록되어 있는 초점 거리 정보 f를 읽어내고, 현재의 줌 렌즈의 위치로부터 줌 배율값 m을 특정한다. 그리고, CPU(8)는, 주지의 하기 식 (3)에 따라 촬영 렌즈로부터 초점 영역까지의 거리 a를 산출한다.
식 (3)
1/a + 1/b = 1/a + 1/m·a = 1/f
단,
a: 촬영 렌즈로부터 초점 영역까지의 거리
b: 촬영 렌즈로부터 실제 상까지의 거리
m: 줌 배율
f: 초점 거리
다음으로, CPU(8)는, 배경 집약 거리 정보로서 2a(a는 촬영 렌즈로부터 초점 영역까지의 거리 정보)의 거리 정보를 설정한다(단계 SE4). 배경 집약 거리 정보는, 후술하는 단계 SE5의 점군 정보의 보정 처리에서, 보정 후의 거리 정보가 되는 것이다.
다음으로, CPU(8)는, DRAM(10) 상에 유지되고 있는 점군 정보(81)에 포함되 는 거리 정보에 대하여, 배경 집약 거리 정보(2a)보다 큰 거리 정보의 범위에 속하는 모든 특징 정보에 대응하는 거리 정보를, 배경 집약 거리 정보(2a)로 변경하는 보정을 행한다(단계 SE5).
단계 SE5의 처리에 의해, 도 16의 (B)에 나타낸 바와 같이, 배경 집약 거리 정보(2a)보다 큰 거리 범위에서 존재하는 피크 부분(93)[건물(44)의 특징점의 존재를 나타내는 피크]에 대응하는 거리 정보가, 배경 집약지 거리 정보(2a)로 보정된다.
다음으로, CPU(8)는, 변화 개시점(94)의 거리 정보 이상이면서 배경 집약 거리 정보 이하의 거리 정보로 구성되는 범위를, 3차원 표시 거리 범위로서 설정한다(단계 SE6). 도 16의 (B)에는, 본 실시예에서의 3차원 표시 거리 범위(97)가 나타나 있다.
다음으로, CPU(8)는, 설정된 3차원 표시 거리 범위(97)가 소정의 임계값 이상인지의 여부를 판단한다(단계 SE7). CPU(8)는, 설정된 3차원 표시 거리 범위(97)가 소정의 임계값 미만이면(단계 SE7; NO), 단계 SE9로 처리를 진행시킨다. 본 실시예에서 임계값은 1(m)이다. 임계값은 1(m)이 아닐 수도 있다.
한편, 단계 SE6의 처리에서 설정된 3차원 표시 거리 범위(97)가 소정의 임계값 이상이면(단계 SE7; YES), CPU(8)는, 3차원 표시 거리 범위(97)가 임계값[1(m)]과 동일한 값의 거리 범위로 되도록, 보정 후의 점군 정보에 포함되는 거리 정보 중 3차원 표시 거리 범위(97)에 속하는 거리 정보를 보정한다(단계 SE8). 단계 SE8의 처리에서의 각각의 거리 정보의 보정 방법은, 단계 SC7의 처리에서의 각각의 거리 정보의 보정 방법과 동일하다.
도 16의 (C)에, 단계 SE8의 처리에 의해 보정된 3차원 표시 거리 범위(971)가 나타나 있다. 도 16의 (C)에 나타낸 바와 같이, 보정된 3차원 표시 거리 범위(971)는, 보정되기 전의 3차원 표시 거리 범위(97)보다 작게 되어 있다.
단계 SE7의 처리 또는 단계 SE8의 처리 후에, CPU(8)는, 보정된 점군 정보를, 촬영 화상 데이터(50A)와 촬영 화상 데이터(50B)의 각각의 헤더 데이터에 기록하고(단계 SCE9), 도 15의 흐름도에 나타내는 거리 정보 보정 처리를 종료시킨다.
(변형예)
전술한 제2 실시예에서는, 단계 SE5의 처리에서 CPU(8)가, 배경 집약 거리 정보보다 큰 거리 정보 모두가, 동일한 거리 정보[변화 종료점(95)의 거리 정보]로 되도록 점군 정보(81)를 보정하였다. 그러나, CPU(8)는, 배경 집약 거리 정보보다 큰 거리 범위에 속하는 거리 정보가 각각 동일한 거리 정보 분만큼 작아지는 보정을 행해도 된다.
본 변형예에서는, 예를 들면, 도 16의 (D)에 나타낸 바와 같이, CPU(8)는, 피크 부분(93)의 시점에 대응하는 거리 정보가 배경 집약 거리 정보(2a)와 일치하도록, 피크 부분(93)에 대응하는 거리 정보 각각을, 배경 거리 정보와 피크 부분(93)의 시점에 대응하는 거리 정보와의 차분값 만큼 작게 하는 보정을, 점군 정보(81)에 포함되는 각각의 거리 정보에 대하여 행한다.
또한, 제2 실시예에서는, CPU(8)는, 초점 영역까지의 거리 정보의 2배의 거리 정보를 배경 집약 거리 정보로서 설정했다. 그러나, 배경 집약 거리 정보는, 초점 영역까지의 거리 정보의 1.5배의 거리 정보나 3배의 거리 정보 등일 수도 있다.
또한, 제2 실시예에서는, 단계 SE8의 처리에서, CPU(8)는, 설정된 3차원 표시 거리 범위(97)가 소정의 임계값 이상이면, 3차원 표시 거리 범위(97)가 소정의 임계값과 동일한 값의 거리 범위로 되도록, 점군 정보(82)에 포함되는 거리 정보 중 3차원 표시 거리 범위(97)에 속하는 거리 정보를 보정하도록 했다.
그러나, CPU(8)는, 단계 SE8의 처리에서, 점군 정보에 포함되는 3차원 표시 거리 범위(97)에 속하는 각각의 거리 정보 Z를, 예를 들면 하기 식 (4)에 따라 보정해도 된다.
식 (4)
Z' = Z - (2a-Z)·α
단,
Z: 보정 전의 거리 정보의 값[보정 전의 3차원 표시 거리 범위(97)에 속하는 각각의 거리 정보]
Z': 보정 후의 거리 정보의 값[보정 후의 3차원 표시 거리 범위(971)에 속하는 각각의 거리 정보)
2a: 배경 집약 거리 정보의 값
α: 1 미만의 임의의 자연수
이상 설명한 바와 같이, 제2 실시예 및 그 변형예에서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 배경 집약 거리 정보보다 큰 거리 범위에 속하는 거리 정보가 작아지도록 보정하였다. 이와 같이 하면, 예를 들면, 주요 피사체와 배경으로 되는 피사체와의 거리가 큰 경우에도, 점군 정보에서의 주요 피사체와 배경 피사체와의 거리 정보가 작아진다. 이로써, 점군 정보를 사용하여 생성되는 3차원 화상에서는, 3차원 화상을 구성하는 3각형 다각형이 일그러진 형상이 되는 것을 회피할 수 있다. 그 결과, 본 실시예에서는, 사용자가 각각의 피사체의 상태를 용이하게 파악할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제2 실시예에서는, 도 16의 (B)에 나타낸 바와 같이, 초점이 맞는 영역 부근의 거리 범위를 3차원 표시 거리 범위(97)로서 자동적으로 설정했다. 그리고, 초점이 맞는 피사체는, 사용자가 주목하는 주요 피사체일 가능성이 높다. 그러므로, 제2 실시예에서는, 사용자가 주목하는 주요 피사체를 용이하게 3차원적으로 표현할 수 있다.
제2 실시예에 있어서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 배경 집약 거리 정보보다 큰 거리 정보 모두가 동일한 거리 정보(배경 집약 거리 정보)로 되도록 보정하였다. 이와 같이 하면, 보정된 점군 정보로부터 생성되는 3차원 화상에서는, 예를 들면 주요 피사체를 3차원적으로 표현할 수 있고, 배경으로 되는 피사체에 대해서는 2차원적으로 표현할 수 있다. 이로써, 사용자는 주요 피사체의 형상을 3차원적으로 육안으로 관찰할 수 있으며, 배경 피사체에 대해서는 그 내용을 용이하게 파악할 수 있다. 그 결과, 본 실시예에 다르면, 사용자가 배경 피사체의 내용을 용이하게 이해할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제2 실시예에서는, CPU(8)가, 3차원 표시 거리 범위(97)가 소정의 임계값 이상인 경우에는, 3차원 표시 거리 범위(97)가 작아지도록, 점군 정보에 포함되는 거리 정보 중 3차원 표시 거리 범위(97)에 속하는 거리 정보를 보정하였다. 이로써, 3차원 표시 거리 범위(97)에 속하는 특징점 사이의 거리 정보가 과대한 크기인 경우에도, 점군 정보에 대하여, 이 특징점 사이의 거리 정보가 작아지도록 보정이 행해지게 된다. 그러면 3차원 화상 상에서 3차원적으로 표현되는 주요 피사체를 구성하는 3각형 다각형이 과대한 크기로 되는 것을 회피할 수 있다. 그 결과, 본 실시예에 따르면, 주요 피사체 등의 안길이가 큰 경우에도, 3차원 화상 상에서 표현되는 주요 피사체를 적정한 형상으로 보정할 수 있어서, 시인성이 높은 3차원 화상을 얻을 수 있다.
<제3 실시예>
도 17에 나타내는 흐름도를 참조하여, 제3 실시예에 따른 거리 정보 보정 처리(단계 SA8의 처리)를 설명한다.
단계 SA7의 처리 후, CPU(8)는, DRAM(10)에 유지되어 있던 점군 정보(81)를 사용하여, 거리별 특징점 정보로서, DRAM(10) 상에서 특징점의 분포도를 생성한다(단계 SF1). 특징점의 분포도를 생성하는 방법은, 단계 SC1의 처리와 동일하다. 도 18의 (A)에 CPU(8)에 의해 생성된 특징점의 분포도가 나타나 있다.
다음으로, CPU(8)는, 디지털 카메라(1)로부터 피사계 심도(深度)의 전단(前端)까지의 거리 정보 Dn을 산출한다(단계 SF2). 구체적으로는, CPU(8)는, 단계 SE3의 처리와 동일하게 하여 촬영 렌즈로부터 초점 영역까지의 거리 a를 산출하고, 플래시 메모리(9)에 미리 기록되어 있는 초점 거리 정보 f와 허용 착란원의 직경 정보 c를 읽어내고, 현재의 조리개값 N을 특정한다. 그리고, CPU(8)는, 주지의 하기 식 (5)에 따라 피사계 심도의 전단까지의 거리 정보 Dn을 산출한다.
식 (5)
Dn = c·N·a2/(f2 + c·N/a)
단,
a: 촬영 렌즈로부터 초점 영역까지의 거리
f: 초점 거리
N: 조리개값
c: 허용 착란원의 직경
다음으로, CPU(8)는, 디지털 카메라(1)로부터 피사계 심도의 후단(後端)까지의 거리 정보 Df를 산출한다(단계 SF3). 구체적으로는, CPU(8)는, 단계 SE3의 처리와 동일하게 하여 촬영 렌즈로부터 초점 영역까지의 거리 a를 산출하고, 플래시 메모리(9)에 미리 기록되어 있는 초점 거리 정보 f와 허용 착란원의 직경 정보 c를 읽어내고, 현재의 조리개값 N을 특정한다. 그리고, CPU(8)는, 주지의 하기 식 (6)에 따라 피사계 심도의 후단까지의 거리 정보 Df를 산출한다.
식 (6)
Df = c·N·a2/(f2 - c·N/a)
단,
a: 촬영 렌즈로부터 초점 영역까지의 거리
f: 초점 거리
N: 조리개값
c: 허용 착란원의 직경
다음으로, CPU(8)는, DRAM(10) 상에 유지되어 있는 점군 정보(81)에 포함되는 거리 정보에 대하여, 피사계 심도의 후단까지의 거리 정보 Df보다 큰 거리 범위에 속하는 각각의 거리 정보를, 피사계 심도의 후단까지의 거리 정보 Df로 변경하는 보정을 행한다(단계 SF4).
즉, 도 18의 (B)에 나타낸 바와 같이, 피사계 심도의 후단의 거리 정보 Df보다 큰 거리 범위에 속하는 피크 부분(93)[건물(44)의 특징점의 존재를 나타내는 피크]에 대응하는 거리 정보가, 피사계 심도의 후단의 거리 정보 Df로 보정된다.
다음으로, CPU(8)는, 피사계 심도의 전단의 거리 정보 Dn 이상이면서 피사계 심도의 후단의 거리 정보 Df 이하의 거리 정보로 구성되는 범위를, 3차원 표시 거리 범위로서 설정한다(단계 SF5). 도 18의 (B)에는, 본 실시예에서의 3차원 표시 거리 범위(98)가 나타나 있다.
다음으로, CPU(8)는, 설정된 3차원 표시 거리 범위(98)가 소정의 임계값 이상인지의 여부를 판단한다(단계 SF6). CPU(8)는, 설정된 3차원 표시 거리 범위(98)가 소정의 임계값 미만이면(단계 SF6; NO), 단계 SE8로 처리를 진행시킨다. 본 실시예에서 임계값은 1(m)이다. 그러나, 임계값은 1(m)이 아닐 수도 있다.
한편, 단계 SF5의 처리에서 설정된 3차원 표시 거리 범위(98)가 소정의 임계값 이상이면(단계 SF6; YES), CPU(8)는, 3차원 표시 거리 범위(98)가 임계값[1(m)]과 같은 값의 거리 범위와 동일하게 되도록, 보정 후의 점군 정보에 포함되는 거리 정보 중 3차원 표시 거리 범위(98)에 속하는 거리 정보를 보정한다(단계 SF7). 단계 SF7의 처리에서의 각각의 거리 정보의 보정 방법은, 단계 SC7의 처리에서의 각각의 거리 정보의 보정 방법과 동일하다.
도 18의 (C)에, 단계 SF7의 처리에 의해 보정된 3차원 표시 거리 범위(981)가 나타나 있다. 도 18의 (C)에 나타낸 바와 같이, 보정된 3차원 표시 거리 범위(981)는, 보정되기 전의 3차원 표시 거리 범위(98)보다 작게 되어 있다.
단계 SF6의 처리 또는 단계 SF7의 처리 후, CPU(8)는, 보정된 점군 정보를, 촬영 화상 데이터(50A)와 촬영 화상 데이터(50B)의 각각의 헤더 데이터에 기록하고(단계 SF8), 도 17의 흐름도에 나타내는 거리 정보 보정 처리를 종료시킨다.
(변형예)
전술한 제3 실시예에서는, 단계 SF4의 처리에서 CPU(8)가, 피사계 심도의 후단의 거리 정보 Df보다 큰 거리 정보 모두가, 동일한 거리 정보(거리 정보 Df)로 되도록 점군 정보(81)를 보정하였다. 그러나, CPU(8)는, 피사계 심도의 후단의 거리 정보 Df보다 큰 거리 범위에 속하는 거리 정보가 각각 동일한 거리 정보 분만큼 작아지는 보정을 행해도 된다.
본 변형예에서는, 예를 들면 도 18의 (D)에 나타낸 바와 같이, CPU(8)는, 피크 부분(93)의 시점에 대응하는 거리 정보가 피사계 심도의 후단의 거리 정보 Df와 일치하도록, 피크 부분(93)에 대응하는 거리 정보 각각을, 거리 정보 Df와 피크 부분(93)의 시점에 대응하는 거리 정보의 차분값 만큼 작게 하는 보정을, 점군 정보(81)에 포함되는 각각의 거리 정보에 대하여 행한다.
또한, 제3 실시예에서는, 단계 SF7의 처리에서, CPU(8)는, 설정된 3차원 표시 거리 범위(98)가 소정의 임계값 이상이면, 3차원 표시 거리 범위(98)가 소정의 임계값과 동일한 값의 거리 범위로 되도록, 점군 정보(82)에 포함되는 거리 정보 중 3차원 표시 거리 범위(98)에 속하는 거리 정보를 보정하도록 했다.
그러나, CPU(8)는, 단계 SF7의 처리에서, 점군 정보에 포함되는 3차원 표시 거리 범위(98)에 속하는 각각의 거리 정보 Z를, 예를 들면 하기 식 (7)에 따라 보정해도 된다.
식 (7)
Z' = Z - (Df - Z)·α
단,
Z: 보정 전의 거리 정보의 값[보정 전의 3차원 표시 거리 범위(98)에 속하는 각각의 거리 정보]
Z': 보정 후의 거리 정보의 값[보정 후의 3차원 표시 거리 범위(981)에 속하는 각각의 거리 정보]
Df: 피사계 심도의 후단의 거리 정보의 값
α: 1 미만의 임의의 자연수
이상, 설명한 바와 같이, 제3 실시예 및 그 변형예에서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 피사계 심도의 후단의 거리 정보 Df보다 큰 거리 범위에 속하는 거리 정보가 작아지도록 보정하였다. 이와 같이 하면, 예를 들면 주요 피사체와 배경으로 되는 피사체와의 거리가 큰 경우에도, 점군 정보에서의 주요 피사체와 배경 피사체와의 거리 정보가 작아진다. 이로써, 점군 정보를 사용하여 생성되는 3차원 화상에서는, 3차원 화상을 구성하는 3각형 다각형이 일그러진 형상으로 되는 것을 회피할 수 있다. 그 결과, 본 실시예에서는, 사용자가 각각의 피사체의 상태를 용이하게 파악할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제3 실시예에서는, 도 18에 나타낸 바와 같이, 피사체 심도가 존재하는 위치에 따른 거리 범위를 3차원 표시 거리 범위(98)로서 자동적으로 설정했다. 그리고, 피사계 심도에 포함되는 피사체, 즉 초점이 맞는 피사체는, 사용자가 주목하는 주요 피사체일 가능성이 높다. 그러므로, 제3 실시예에서는, 사용자가 주목하는 주요 피사체를 용이하게 3차원적으로 표현할 수 있다.
제3 실시예에서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 피사계 심도의 후단의 거리 정보 Df보다 큰 거리 정보의 모두가 같은 거리 정보(거리 정보 Df)로 되도록 보정하였다. 이와 같이 하면, 보정된 점군 정보로부터 생성되는 3차원 화상에서는, 예를 들면 주요 피사체를 3차원적으로 표현하고, 배경으로 되는 피사체에 대해서는 2차원적으로 표현할 수 있다. 이로써, 사용자는 주요 피사체의 형상을 3차원적으로 육안으로 관찰할 수 있으며, 배경 피사체에 대해서는 그 내용을 용이하게 파악할 수 있다. 그 결과, 본 실시예에 따르면, 사용자가 배 경이 된 피사체상의 내용을 용이하게 이해할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제3 실시예에서는, CPU(8)가, 3차원 표시 거리 범위(98)가 소정의 임계값 이상인 경우에는, 3차원 표시 거리 범위(98)가 작아지도록, 점군 정보에 포함되는 거리 정보 중 3차원 표시 거리 범위(98)에 속하는 거리 정보를 보정하였다. 이로써, 3차원 표시 거리 범위(98)에 속하는 특징점 사이의 거리 정보가 과대한 크기인 경우에도, 점군 정보에 대하여, 이 특징점 사이의 거리 정보가 작아지도록 보정이 행해지게 된다. 그러면 3차원 화상 상에서 3차원적으로 표현되는 주요 피사체를 구성하는 3각형 다각형이 과대한 크기로 되는 것을 회피할 수 있다. 그 결과, 본 실시예에 의하면, 주요 피사체 등의 안길이가 큰 경우라도, 3차원 화상 상에서 표현되는 주요 피사체를 적정한 형상으로 보정할 수 있어서, 시인성이 높은 3차원 화상을 얻을 수 있다.
<제4 실시예>
도 19에 나타내는 흐름도를 참조하여, 제4 실시예에 따른 거리 정보 보정 처리(단계 SA8의 처리)를 설명한다.
단계 SA7의 처리 후, CPU(8)는, 도 20에 나타내는 설정 화면을 표시부(12)에 표시시키고, 사용자의 키 블록(13)에 대한 조작에 의한 배경 집약 거리 정보의 입력을 검지할 때까지 대기 상태로 된다(단계 SG1).
CPU(8)는, 사용자의 조작에 의한 입력을 검지하지 않은 경우(단계 SG1; NO), 그대로 대기 상태로 계속된다. 한편, CPU(8)는, 사용자의 조작에 의한 입력을 검 지한 경우(단계 SG1; YES), 사용자의 조작에 의해 입력된 배경 집약 거리 정보를 설정한다(단계 SG2). 본 실시예에서는, 사용자의 조작에 의해 배경 집약 거리 정보로서 4.00(m)가 설정된 것으로 가정한다.
다음으로, CPU(8)는, DRAM(10)에 유지되어 있는 점군 정보(81)에 포함되는 각각의 거리 정보 중, 단계 SG2의 처리에 의해 설정된 배경 집약 거리 정보보다 큰 거리 범위에 속하는 모든 거리 정보가, 이 설정된 배경 집약 거리 정보[4.00(m)]로 되도록 점군 정보(81)를 보정한다(단계 SG3).
도 21에 단계 SG3의 처리에 의해 보정된 점군 정보(84)의 상태가 나타나 있다. 도 21에 나타낸 바와 같이, 원래의 점군 정보(81)에서 배경 집약 거리 정보[4.00(m)]보다 큰 거리 정보인, 건물(44)의 각각의 특징점에 대응하는 거리 정보가 모두 배경 집약 거리 정보[4.00(m)]로 보정되어 있다.
다음으로, CPU(8)는, 보정 후의 점군 정보(84)를, 촬영 화상 데이터(50A)와 촬영 화상 데이터(50B)의 각각의 헤더 데이터에 기록하고(단계 SG4), 도 19의 흐름도에 나타내는 거리 정보 보정 처리를 종료시킨다.
(변형예)
전술한 제4 실시예에서는, 단계 SG3의 처리에서 CPU(8)가, 사용자의 조작에 의해 설정된 배경 집약 거리 정보보다 큰 거리 정보 모두가, 동일한 거리 정보(배경 집약 거리 정보)로 되도록 점군 정보(81)를 보정하였다. 그러나, CPU(8)는, 사용자의 조작에 의해 설정된 배경 집약 거리 정보보다 큰 거리 범위에 속하는 거리 정보가 각각 동일한 거리 정보 분만큼 작아지는 보정을 행해도 된다.
이상, 설명한 바와 같이, 제4 실시예 및 그 변형예에서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중, 사용자의 조작에 의해 설정된 배경 집약 거리 정보보다 큰 거리 범위에 속하는 거리 정보가 작아지도록 보정하였다. 이와 같이 하면, 예를 들면, 주요 피사체와 배경으로 되는 피사체와의 거리가 큰 경우에도, 점군 정보에서의 주요 피사체와 배경 피사체와의 거리 정보가 작아진다. 이로써, 점군 정보를 사용하여 생성되는 3차원 화상에서는, 3차원 화상을 구성하는 3각형 다각형이 일그러진 형상으로 되는 것을 회피할 수 있다. 그 결과, 본 실시예에서는, 사용자가 각각의 피사체의 상태를 용이하게 파악할 수 있는 3차원 화상, 즉 시인성이 높은 3차원 화상을 얻을 수 있다.
제4 실시예에 있어서는, 배경 집약 거리 정보는 사용자의 조작에 의해 설정하도록 했다. 이로써, 점군 정보에 대하여, 사용자가 원하는 거리 범위에서의 피사체(배경 피사체 등)의 거리 정보를 확실하게 작게 하는 보정을 행할 수 있다.
제4 실시예에서는, CPU(8)가, 점군 정보(81)에 포함되는 거리 정보 중 배경 집약 거리 정보보다 큰 거리 정보 모두가 동일한 거리 정보(배경 집약 거리 정보)로 되도록 보정하였다. 이와 같이 하면, 보정된 점군 정보로부터 생성되는 3차원 화상에서는, 예를 들면 주요 피사체를 3차원적으로 표현할 수 있고, 배경으로 되는 피사체에 대해서는 2차원적으로 표현할 수 있다. 이로써, 사용자는 주요 피사체의 형상을 3차원적으로 육안으로 관찰할 수 있으며, 배경 피사체에 대해서는 그 내용을 용이하게 파악할 수 있다. 그 결과, 본 실시예에 따르면, 사용자가 배경으로 된 피사체상의 내용을 용이하게 이해할 수 있는 3차원 화상, 즉 시인성이 높은 3차 원 화상을 얻을 수 있다.
전술한 각각의 실시예 및 각 변형예에서는, 본 발명을 디지털 카메라에 적용한 경우에 대하여 설명하였다. 그러나, 본 발명은, 화상 정보를 생성하는 기능을 가지는 것이면, 디지털 비디오 카메라, 카메라가 내장된 휴대 전화 단말기 등의 다른 카메라 장치나, 퍼스널 컴퓨터 등의 화상 생성 장치에도 적용할 수 있다.
본 발명은 전술한 실시예로 한정하지 않고, 구성 요소가 본 발명의 취지와 범위를 일탈하지 않고 변경될 수 있는 상태로 구체화될 수 있음을 이해해야 한다. 본 발명은, 구성 요소의 적절한 조합에 의해 다양하게 실시될 수 있다. 예를 들면, 일부 구성 요소가 실시예의 전체 구성 요소로부터 삭제될 수도 있다. 또한, 다른 실시예에 있어서의 구성 요소는 조합에 의해 적절하게 사용될 수도 있다.