KR20160051803A - 인터랙티브 이미지 합성 - Google Patents

인터랙티브 이미지 합성 Download PDF

Info

Publication number
KR20160051803A
KR20160051803A KR1020167007713A KR20167007713A KR20160051803A KR 20160051803 A KR20160051803 A KR 20160051803A KR 1020167007713 A KR1020167007713 A KR 1020167007713A KR 20167007713 A KR20167007713 A KR 20167007713A KR 20160051803 A KR20160051803 A KR 20160051803A
Authority
KR
South Korea
Prior art keywords
image
pixel
line
shim
stitching
Prior art date
Application number
KR1020167007713A
Other languages
English (en)
Other versions
KR101923788B1 (ko
Inventor
후이 차오
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160051803A publication Critical patent/KR20160051803A/ko
Application granted granted Critical
Publication of KR101923788B1 publication Critical patent/KR101923788B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • H04N5/23216
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/633Control of cameras or camera modules by using electronic viewfinders for displaying additional information relating to control or operation of the camera
    • H04N23/635Region indicators; Field of view indicators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N5/23229
    • H04N5/23293
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)
  • Cameras In General (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

특정 실시형태들은, 다수의 캡처된 이미지들로부터 단일 그룹 이미지를 생성하기 위한 시스템들 및 방법들에 관련된다. 제 1 이미지 및 제 2 이미지가 캡처될 수도 있고, 제 1 이미지는 그룹의 제 1 부분을 포함하고 제 2 이미지는 그룹의 제 2 부분을 포함한다. 사용자 인터페이스는 일부 실시형태들에서, 제 2 이미지의 캡처를 위해 제공될 수도 있고, 포토그래퍼가 제 1 및 제 2 이미지의 상대적인 포지셔닝에 관한 입력을 제공할 뿐만 아니라 그룹의 제 1 및 제 2 부분들의 상대적인 포지셔닝 및 이미지 장면 배경에 관한 입력을 제공할 수 있게 한다. 일부 실시형태들에서, 최저 에너지 심 라인은 제 1 및 제 2 이미지들의 오버랩하는 부분에 대하여 결정될 수도 있고, 최저 에너지 심 라인은 그룹의 제 1 및 제 2 부분들을 포함하는 최종 스티칭된 이미지를 생성하기 위해 사용될 수도 있다.

Description

인터랙티브 이미지 합성{INTERACTIVE IMAGE COMPOSITION}
본원에 개시된 시스템들 및 방법들은 일반적으로 이미지 스티칭에 관한 것이고, 더 구체적으로, 다수의 캡처된 이미지들로부터 단일 그룹 이미지를 생성하는 것에 관련된다.
디지털 이미징 능력들은 디지털 카메라들, 태블릿 컴퓨터들, 및 모바일 폰들을 포함하는 광범위의 디바이스들 내로 통합되었다. 디지털 이미징 디바이스들 및 이미지 캡처 시스템들은 스틸 이미지들 또는 비디오를 캡처하는 디바이스들을 포함하여 하나 이상의 디지털 이미지들을 캡처할 수 있는 임의의 타입의 디바이스를 지칭할 수 있다.
디지털 프로세싱 기술과 이미징 디바이스들의 통합은 더 강력하고 사용이 용이한 사진 결과물들을 가능하게 하고, 소형의 디바이스들이 이미지 데이터를 캡처하고 강화할 수 있게 하였다. 예를 들어, 디지털 이미징 디바이스들은, 세그먼트화된 파노라마 또는 고해상도 이미지를 생성하기 위해 다수의 사진 이미지들을 오버랩하는 시계 (field of view) 들과 결합하는 프로세스인, 이미지 스티칭을 채용할 수도 있다. 컴퓨터 소프트웨어의 사용을 통해 보편적으로 수행될 때, 이미지 스티칭에 대한 대부분의 접근방식들은 2 이상의 이미지들의 에지들을 정렬하고, 그 에지들의 오버랩하는 영역들을 결정하고, 오버랩하는 영역들에 기초하여 이미지들을 예컨대 파노라마로 결합한다. 일부 디지털 이미징 디바이스들은 그들의 사진들을 내부적으로 스티칭할 수 있지만, 일부 이미지 스티칭 기술들은 분리된 컴퓨팅 디바이스에서 수행된다.
다른 예로서, 디지털 이미징 디바이스들은, 제 1 이미지의 오브젝트 또는 부분을 제 2 이미지의 장면 내에 통합하는 프로세스인, 이미지 블렌딩을 채용할 수도 있다. 이러한 타입의 동작은 디지털 이미지들을 정정하거나, 수리하거나, 수정할 뿐만 아니라 포토-몽타주를 생성하는데 유용하다. 이미지 블렌딩은 통상적으로, 사용자에 의한 제 1 이미지로부터의 오브젝트 또는 부분의 선택을 요구하며, 이는 종래의 이미지 편집 소프트웨어에서 다양한 툴들에 익숙할 것을 요구하는 시간 소비적인 프로세스일 수 있다. 종래에, 편집된 영역과 원래 이미지의 여분 간에 통상적으로 심 (seam) 들이 도입된다는 사실을 포함하는 몇몇 문제들이 발생한다.
디지털 카메라와 같은 이미지 캡처 디바이스의 한 가지 보편적인 사용은, 사람들의 그룹의 이미지를 캡처하는 것이다. 그러나, 포토그래퍼가 종종 그룹의 일부이고, 따라서 그 그룹과 포토그래퍼는 포토그래퍼가 이미지에 포함되는 것을 원할 수도 있다. 이를 위한 한 가지 솔루션은 그 그룹이 아닌 다른 사람에게 이미지를 촬영할 것을 요청하는 것이다. 그러나, 포토그래퍼로서 역할하기 위해 사용가능한 다른 사람이 항상 존재하는 것은 아니다. 그룹 이미지에 포토그래퍼를 포함시키는 문제에 대한 다른 솔루션은, 카메라의 셀프 타이머 특징을 사용하여 이미지를 캡처하여, 포토그래퍼에게 사진을 설정한 이후에 그룹에 참여할 시간을 제공하는 것이다. 그러나, 셀프 타이머의 사용은 일반적으로 인접한 오브젝트 위에 카메라를 밸런싱하는 것을 요구한다. 용이하게 사용가능한 그러한 오브젝트가 항상 존재하는 것은 아니고, 사용가능한 인접 오브젝트의 사용은 종종 그룹 이미지의 결코 이상적이지 않은 프레이밍 및/또는 포커스를 발생한다. 분리된 사진에서 이미징되는 것과 같이, 포토그래퍼를 그룹 사진에 수동으로 블렌딩하는 것은 특수화된 소프트웨어에 대한 스킬 및 익숙함을 요구하는 시간-집약적인 디지털 편집 프로세스이다.
따라서, 동적 이미지 스티칭이 그룹 이미지를 형성하게 하고, 사용자에 의해 요구되는 액션들을 간략화하기 위한 신속하고 효율적인 툴을 제공하는, 이미지 캡처 시스템들을 제공하는 것이 바람직할 수 있다. 본원에서 논의되는 시스템들 및 방법들의 일 실시형태는, 예컨대 이미지 캡처 디바이스의 뷰파인더 또는 이미지 캡처 디바이스와 연관된 다른 디스플레이에서, 제 1 포토그래퍼가 그룹의 제 1 부분의 제 1 이미지를 캡처할 수 있게 하고, 그 후에 제 2 포토그래퍼가 제 1 포토그래퍼를 포함할 수 있는 그룹의 제 2 부분의 제 2 이미지를 캡처하는 동안 상기 제 1 이미지의 반투명한 (translucent) 오버레이를 볼 수 있게 하거나, 또는 그 반대도 가능하게 하는, 사용자 인터페이스를 제공할 수 있다. 사용자 인터페이스는 또한, 사용자가 제 1 이미지 및 제 2 이미지의 상대적인 포지셔닝을 조정하게 할 수도 있다. 상대적인 포지셔닝은 이미지 스티칭을 위해 제 1 이미지와 제 2 이미지를 정렬하는데 사용될 수 있다. 사용자 인터페이스는 또한, 사용자가 제 1 이미지의 일부와 제 2 이미지의 일부를 스티칭하기 위해 사용될 수도 있는 심 라인 영역을 식별하게 할 수도 있다.
다른 실시형태에서, 이미지 캡처 시스템은 제 1 이미지와 제 2 이미지의 오버랩하는 영역에 대한 심 라인을 자동으로 결정할 수 있고, 심 라인은 제 1 이미지 및 제 2 이미지를 함께 스티칭하는데 사용될 수 있다. 심 라인은 제 2 이미지의 영역에 스티칭되는 제 1 이미지의 영역 간의 경계일 수 있다.
일 실시형태에서, 심 라인에 대한 최저 에너지 경로는 오버랩하는 영역에서 제 1 이미지의 각 픽셀의 구배 값들을 제 2 이미지에서 대응하는 픽셀의 구배 값들로부터 감산하거나, 또는 그 반대로 감산함으로써 결정될 수도 있다. 다른 실시형태들에서, 픽셀들의 휘도 또는 색차 값들이 구배 값들을 대신하거나, 또는 구배 값들에 부가하여 사용될 수도 있다. 2 개의 그레이스케일 이미지들을 함께 스티칭하는 실시형태들에서, 루마 값 및 구배 값 중 하나 또는 양자가 사용될 수도 있다. 2 개의 RGB 이미지들을 함께 스티칭하는 실시형태들에서, 휘도, 색차, 및 구배 값들의 일부 또는 전부가 사용될 수도 있다.
한 가지 양태는, 특정 실행가능한 명령들로 구성된 하나 이상의 컴퓨팅 디바이스들에 의해 구현되는 방법에 관한 것이며, 그룹의 제 1 부분의 제 1 이미지를 캡처하는 단계; 전자 디바이스의 디스플레이 상에 제 2 이미지의 라이브 프리뷰를 생성하는 단계로서, 제 2 이미지는 그룹의 제 2 부분을 포함하는, 상기 라이브 프리뷰를 생성하는 단계; 제 1 이미지의 적어도 일부를 제 2 이미지의 라이브 프리뷰 상에 중첩하는 단계; 사용자 입력을 사용하여 그룹의 제 2 부분의 제 2 이미지를 캡처하는 단계; 제 1 이미지 및 제 2 이미지의 라이브 프리뷰와 제 2 이미지 중 하나의 상대적인 포지셔닝에 관한 사용자 입력을 수신하는 단계; 및 사용자 입력에 적어도 부분적으로 기초하여 제 1 이미지와 제 2 이미지를 최종 스티칭된 이미지로 스티칭하는 단계로서, 최종 이미지는 그룹의 제 1 부분과 그룹의 제 2 부분을 포함하는, 상기 최종 스티칭된 이미지로 스티칭하는 단계를 포함한다.
다른 양태는 이미지 캡처 디바이스에 관한 것이며, 개인들의 그룹의 제 1 부분의 제 1 이미지 및 그룹의 제 2 부분의 제 2 이미지를 캡처하도록 구성된 이미지 센서; 제 2 이미지의 라이브 프리뷰를 디스플레이하도록 구성된 디스플레이로서, 상기 디스플레이는 추가로 제 2 이미지의 라이브 프리뷰 상에 중첩된 제 1 이미지의 적어도 일부를 디스플레이하도록 구성되는, 상기 디스플레이; 제 2 이미지의 라이브 프리뷰 및 제 1 이미지의 적어도 일부의 상대적인 포지셔닝에 관한 사용자 입력을 수신하도록 구성된 사용자 입력 모듈; 및 사용자 입력에 적어도 부분적으로 기초하여 제 1 이미지와 제 2 이미지를 최종 이미지로 스티칭하도록 구성된 이미지 스티칭 모듈로서, 최종 이미지는 그룹의 제 1 부분과 그룹의 제 2 부분을 포함하는, 상기 이미지 스티칭 모듈을 포함한다.
또 다른 양태는 저 에너지 심 라인을 결정하는 방법에 관한 것이며, 그 방법은 특정 실행가능 명령들로 구성된 하나 이상의 컴퓨팅 디바이스들에 의해 구현될 경우, 제 1 이미지 및 제 2 이미지를 포함하는 이미지 데이터를 수신하는 단계; 제 1 이미지와 제 2 이미지의 오버랩하는 영역을 결정하는 단계로서, 오버랩하는 영역은 복수의 픽셀들을 포함하는, 상기 오버랩하는 영역을 결정하는 단계; 복수의 인접 픽셀들에 인접하는 시작 픽셀을 선택하는 단계; 복수의 인접 픽셀들의 각각에 대한 차이 값을 계산하는 단계; 복수의 인접 픽셀들 중 하나를 현재 심 라인 픽셀로서 선택하는 단계; 및 시작 픽셀의 제 1 로케이션 데이터 및 현재 심 라인 픽셀의 제 2 로케이션 데이터를 포함하는 심 라인 픽셀 로케이션 데이터를 구성하는 단계를 포함한다.
또 다른 양태는 심 라인 생성 시스템에 관한 것이며, 제 1 이미지와 제 2 이미지의 오버랩하는 영역을 결정하도록 구성된 오버랩 결정 모듈; 오버랩하는 영역 내에 저 에너지 심 라인을 생성하도록 구성된 심 생성기로서, 저 에너지 심 라인은 제 1 이미지를 제 2 이미지로 스티칭하기 위한 경계를 나타내는, 상기 심 생성기; 및 심 라인의 전체 에너지 레벨을 계산하도록 구성된 심 에너지 계산기를 포함한다.
이제, 본 발명의 특정 구현들이, 한정이 아닌 예로서 제공되는 다음의 도면들을 참조하여 설명될 것이다.
도 1a 내지 도 1c 는 결합된 그룹 이미지를 생성하는 프로세스를 예시하는 다양한 사용자 인터페이스 디스플레이들을 도시한다.
도 2a 내지 도 2c 는 오버랩된 영역들 내에 디스플레이된 심 라인들을 갖는 다양한 오버랩된 배열들에서 이미지들의 쌍을 도시한다.
도 3 은 그룹 또는 스티칭된 이미지를 캡처하고 생성하기 위한 예시적인 시스템의 개략적인 블록 다이어그램을 도시한다.
도 4 는 사용자 인터페이스 제어 모듈의 일 실시형태를 도시하는 개략적인 블록 다이어그램이다.
도 5 는 스티칭된 이미지 생성 모듈의 일 실시형태를 도시하는 개략적인 블록 다이어그램이다.
도 6 은 사용자-가이드 이미지 스티칭을 위한 예시적인 프로세스를 도시하는 개략적인 흐름도이다.
도 7 은 2 개의 이미지들을 함께 스티칭하기 위한 심 라인을 결정하는 예시적인 프로세스를 도시하는 개략적인 흐름도이다.
도 8 은 예시적인 심 라인 픽셀 선택 프로세스를 도시하는 개략적인 흐름도이다.
도입
본원에 기술된 이미지 캡처 및 스티칭 기술들은 각각 그룹의 일부 및 실질적으로 유사한 배경들을 포함하는 2 개 이상의 이미지들을 캡처 및 스티칭할 수 있다. 일부 실시형태들은 다양한 프로세스 스테이지들에서, 예컨대 이미지 정렬에서 및 이미지들을 함께 스티칭하기 위한 경계를 정의하는 심 라인을 위치시키는 것에서, 사용자 입력을 수신하도록 설계된 사용자 인터페이스를 구현할 수 있다. 일부 실시형태들은 이미지들을 정렬하고, 심 라인이 시각적으로 만족스러운 스티칭된 이미지 결과를 생성할 수 있는 것을 표시하는 저 에너지 레벨을 갖는 심 라인을 생성하기 위해 자동화된 프로세스를 구현할 수 있다. 다른 실시형태들은 사용자에게 캡처 및 스티칭 특징들을 추천하기 위해 사용자 입력 및 자동 이미지 정렬을 결합하는 동시에, 원하는 경우에 사용자가 추천된 특징들을 변경하게 할 수 있다.
본원에서 논의되는 시스템들 및 방법들의 일 실시형태는, 예컨대 이미지 캡처 디바이스의 뷰파인더 또는 이미지 캡처 디바이스와 연관된 다른 디스플레이에서, 제 1 포토그래퍼가 그룹의 제 1 부분의 제 1 이미지를 캡처할 수 있게 하고, 그 후에 그룹의 제 2 부분의 제 2 이미지를 캡처하는 동안 상기 제 1 이미지의 반투명한 오버레이를 볼 수 있게 하는, 사용자 인터페이스를 제공할 수 있다. 일 실시형태에서, 제 2 이미지는 제 1 이미지에서 캡처된 제 1 그룹의 부분이 아닌 추가의 사람들을 포함하도록 캡처된다. 다른 실시형태들은 뷰파인더에서 불투명한 제 1 이미지 위에 제 2 이미지의 프리뷰 이미지의 반투명한 오버레이를 제시할 수도 있다. 일부 실시형태들에서, 사용자는 예컨대, 제 1 이미지와 제 2 이미지 중 어느 것이 반투명하게 디스플레이될 것인지를 선택하고, 선택된 이미지에 대한 불투명도 레벨을 선택함으로써, 반투명도 파라미터를 제어할 수 있다.
사용자 인터페이스는 또한, 사용자, 예컨대 제 2 포토그래퍼가 제 1 이미지 및 제 2 이미지의 상대적인 포지셔닝을 조정하게 할 수도 있다. 일부 실시형태들에서, 제 1 이미지의 반투명한 오버레이는 제 2 이미지의 캡처 동안 제 2 이미지의 뷰파인더 프리뷰 이미지와 재정렬될 수도 있다. 예컨대, 터치 감응식 스크린을 갖는 이미지 캡처 디바이스의 구현에서, 사용자는 손가락 드래그 또는 스와이프 제스처를 사용하여 불투명한 이미지에 대하여 반투명한 이미지를 다시 포지셔닝할 수 있고, 2-손가락 핀치를 사용하여 반투명한 이미지 또는 불투명한 이미지를 줌 인 또는 줌 아웃할 수 있고, 회전 드래그 제스처를 사용하여 반투명한 이미지의 수평과 불투명한 이미지의 수평을 정렬할 수 있다. 버튼들 또는 음성 제어부들이 다른 구현들에서 제 1 및 제 2 이미지들을 정렬하기 위해 사용될 수 있다. 상대적인 포지셔닝은 이미지 스티칭을 위해 제 1 이미지와 제 2 이미지를 정렬하는데 사용될 수 있다. 사용자 인터페이스는 또한, 사용자가 제 1 이미지의 일부와 제 2 이미지의 일부를 스티칭하기 위해 사용될 수도 있는 심 라인 영역을 식별하게 할 수도 있다.
일부 실시형태들은 이미지들을 자동으로 정렬 및 스티칭하고, 이미지들을 스티칭하기 위한 경계들로서 심 라인을 자동으로 결정할 수 있다. 심 라인들은 제 1 이미지와 제 2 이미지의 오버랩하는 부분에 대해 결정될 수도 있다. 일부 실시형태들은 오버랩을 결정하기 위해 제 1 및 제 2 이미지들을 자동으로 정렬할 수도 있는 반면, 일부 실시형태들은 이미지들의 사용자 정렬에 적어도 부분적으로 기초하여 오버랩을 결정할 수도 있다. 그 후에, 최저 에너지 경로 결정 프로세스는 최저 에너지 경로에 대하여 오버랩하는 영역을 탐색할 수도 있고, 그 경로를 사용하여 이미지들 또는 이미지 전경들을 함께 스티칭할 수도 있다.
저 에너지 또는 최저 에너지 심 라인은 오버랩하는 영역에서 시작 픽셀을 선택하고, 휘도, 색차, 심도, 또는 다른 픽셀 값과 같은 시작 픽셀의 값을 식별함으로써 결정될 수 있다. 그 값은 시작 픽셀에 인접한 픽셀들에 대하여 결정될 수 있고, 차이 값은 복수의 인접 픽셀들의 각각에 대하여 계산될 수 있고 그 인접 픽셀의 값과 시작 픽셀의 값 간의 차이를 나타낸다. 인접 픽셀들 중 하나는 현재의 심 라인 픽셀, 예컨대 최저 차이 값을 갖는 인접 픽셀로서 세팅될 수 있다. 그 후, 차이 값들은 현재 심 라인 픽셀에 인접하는 픽셀들에 대하여 계산될 수도 있고, 다음 심 라인 픽셀은 오버랩하는 영역의 에지에 도달될 때까지 선택될 수 있다. 시작 픽셀 및 다른 심 라인 픽셀들의 좌표들 또는 위치들은, 이미지들을 함께 스티칭하는데 사용될 수 있는 심 라인 픽셀 위치 데이터를 구성하도록 저장될 수 있다.
일부 실시형태들에서, 다수의 심 라인들은 예컨대, 오버랩하는 영역에서 픽셀들의 에너지 맵으로부터 생성될 수 있다. 에너지 맵은 일부 실시형태들에서 구배 크기로부터 생성될 수 있다. 다수의 심 라인들 중 이미지 스티칭을 위해 사용할 하나의 심 라인을 선택하는 것은, 각 심 라인의 누산된 에너지 비용, 예컨대 최소 누산된 구배 차이를 검사하는 것을 수반할 수 있다. 동일한 최저 누산된 에너지 비용을 갖는 2 이상의 심 라인들이 존재한다면, 하나의 심 라인은 다른 심 라인에 대하여 일부 실시형태들에서, 심 라인의 길이에 기초하여 이미지 스티칭을 위해 선택될 수도 있으며, 즉 바로 하향으로 이동하는 심 라인은 대각 방향으로 이동하는 심 라인에 비해 바람직할 수 있다. 다른 실시형태들에서, 최대 차이를 갖는 심 라인 픽셀이 각각의 심 라인에 대하여 결정될 수 있고, 최저 최대 차이 값을 갖는 심 라인이 선택될 수 있다. 추가의 실시형태들에서, 다수의 가능한 고유 스티칭 결과들이 심 라인들을 사용함으로써 생성될 수 있고 사용자에게 제시될 수 있으며, 사용자는 스티칭된 이미지 옵션들로부터 선택할 수 있다.
최저 에너지 경로 결정 프로세스는 시작 픽셀에서 시작할 수도 있고, 시작 픽셀은 일부 실시형태들에서 오버랩하는 영역의 최상위 로우에서 최좌측 픽셀일 수도 있지만, 다른 실시형태들에서 오버랩하는 영역 내의 임의의 다른 픽셀일 수 있다. 그 후에, 최저 에너지 경로 결정 프로세스는 시작 픽셀에 인접하는 픽셀들의 각각에 대하여 제 1 이미지와 제 2 이미지로부터의 픽셀 값들 간에 차이 값을 계산할 수도 있다. 최저 차이 값을 갖는 픽셀은 현재 심 라인 픽셀로서 세팅될 수도 있고, 그 심 라인은 현재 심 라인 픽셀의 방향으로 드로잉될 수도 있다. 일부 실시형태들에서, 현재 심 라인 픽셀의 위치 정보는 심 라인 픽셀 위치 데이터를 포함하는 메모리에 저장될 수도 있다. 심 라인 픽셀 위치 데이터는 이미지 스티칭 동안 심 라인을 구성하는데 사용될 수도 있다.
일부 실시형태들에서, 어떤 인접하는 픽셀도 임계치 미만의 차이 값을 가지지 않는다면, 최저 에너지 경로 결정 프로세스는 시작 픽셀로서 상이한 픽셀을 세팅할 수도 있고, 새로운 시작 픽셀에 인접한 픽셀들에 대하여 차이 값들을 계산할 수도 있다. 오버랩하는 영역에서의 어떤 픽셀도 임계치 미만의 차이 값을 가지는 것으로 결정되지 않는다면, 최저 에너지 경로 결정 프로세스는 사용자에게 제 1 이미지 및 제 2 이미지가 충분한 유사성을 가지지 않는 것을 표시할 수도 있고, 사용자에게는 임계치를 조정하거나 스티칭용의 새로운 이미지들을 캡처하기 위한 선택가능한 옵션이 제시될 수도 있다.
현재의 심 라인 픽셀들을 결정한 후에, 최저 에너지 경로 결정 프로세스는 현재 심 라인 픽셀에 인접한 픽셀들의 각각에 대하여 제 1 이미지 및 제 2 이미지의 픽셀 값들 간의 차이 값을 계산할 수도 있다. 어떤 인접한 픽셀도 임계치 미만의 차이 값을 가지지 않는다면, 그 후 프로세스는 새로운 시작 픽셀로 다시 시작할 수도 있다. 적어도 하나의 인접 픽셀이 임계치 미만의 차이 값을 갖는다면, 현재 심 라인 픽셀은 최저 차이 값을 갖는 인접 픽셀인 것으로 업데이트될 수 있고, 심 라인 픽셀 위치 데이터는 업데이트된 현재 심 라인 픽셀의 위치 정보를 포함하도록 업데이트될 수도 있다. 일부 실시형태들에서, 심 라인 픽셀 위치 데이터는 현재 심 라인 픽셀 위치의 이전 심 라인 픽셀 위치들과의 비교를 위해 사용될 수도 있다. 현재 심 라인 픽셀 위치 데이터가 이전 심 라인 픽셀 위치 데이터 내의 임의의 엔트리와 매칭한다면, 그 심 라인은 원상 복귀하고, 프로세스는 계속될 경우, 무한 루프에 갇힐 수도 있다. 따라서, 현재 심 라인 픽셀 위치 데이터가 이전 심 라인 픽셀 위치 데이터 내의 임의의 엔트리와 매칭한다면, 프로세스는 새로운 시작 픽셀을 선택하고 다시 시작할 수도 있다.
최저 에너지 경로 결정 프로세스는 현재 심 라인 픽셀에 인접하는 픽셀들의 각각에 대하여 제 1 이미지와 제 2 이미지로부터의 픽셀 값들 간에 차이 값을 계산하는 것을, 인접 픽셀에 대한 적어도 하나의 차이 값이 임계치 미만으로 하락한다면 및 현재 심 라인 픽셀 위치 데이터가 이전 심 라인 픽셀 위치 데이터 내의 임의의 엔트리와 매칭하지 않는다면, 프로세스가 오버랩하는 영역의 최종 로우에 있는 픽셀에 도달할 때까지, 계속할 수도 있다. 프로세스가 심 라인의 시작 픽셀이 시작 로우에 있고 심 라인의 최종 픽셀이 최종 로우에 있는 것을 결정할 경우, 프로세스는 완료된 심 라인을 저장할 수도 있거나, 완료된 심 라인을 사용자에게로의 프리젠테이션을 위해 또는 이미지 스티칭을 위해 출력할 수도 있다. 최상위 로우에서의 시작 픽셀로 심 라인을 드로잉하기 시작하는 실시형태들에서, 최종 로우는 최하위 로우일 수도 있다. 일부 실시형태들에서, 심 라인이 에지 로우에서 종료한다면, 프로세스는 그 심 라인이 미완료된 최종 스티칭된 이미지에 대해 대비할 수도 있거나 새로운 시작 픽셀로 다시 시작할 수도 있는 것의 표시와 함께, 그 심 라인을 사용자에게 제시할 수도 있다.
일부 실시형태들에서, 완료된 심 라인의 전체 에너지 레벨은, 예컨대 각각의 심 라인 픽셀의 차이 값들을 합산함으로써 계산될 수도 있다. 심 라인의 전체 에너지 레벨은 이미지 스티칭에서의 사용 이전에 또는 사용자에게로의 프리젠테이션 이전에 임계치와 비교될 수도 있다. 이하 논의되는 바와 같이, 완료된 심 라인의 전체 에너지는 최종 스티칭된 이미지의 가능한 품질의 표시를 사용자에게 생성하는데 사용될 수도 있다. 일부 실시형태들에서, 복수의 저 에너지 심 라인 옵션들은 단일의 최저 에너지 심 라인 대신 사용자에게 제시될 수도 있고, 저 에너지 심 라인 옵션들은 각각 임계치 미만의 전체 에너지 레벨을 갖는다.
언급된 것과 같이, 일부 실시형태들은 사용자 입력 및 이미지 스티칭 인자들의 자동 결정을 결합할 수 있다. 일 실시형태에서, 사용자-가이드된 그룹 이미지 캡처 인터페이스는 사용자가 하나 이상의 이미지 정렬 및 심 라인 위치들을 관측하거나, 변경하거나, 입력하게 할 수도 있다. 다수의 심 라인들이 생성되었다면, 사용자는 이미지들을 함께 스티칭하기 위해 어떤 심 라인들을 사용할 것인지 선택하기 위한 옵션을 가질 수 있다. 일부 실시형태들에서, 심 라인의 외형은 예컨대, 에너지 레벨에 기초하여 심 라인들을 컬러 스펙트럼으로 디스플레이함으로써, 심 라인의 전체 에너지를 사용자에게 표시하도록 변화할 수 있다. 예시를 위해, 일 실시형태에서 녹색의 심 라인들은 저 에너지 심 라인들을 나타낼 수 있고, 황색은 중간 레벨 에너지 심 라인들을 나타낼 수도 있고, 적색 심 라인들은 최고 에너지 심 라인들을 나타낼 수도 있다. 시스템은 자동으로 생성된 또는 사용자에 의해 입력된 심 라인들의 외형을 변화시켜 심 라인 에너지의 표시를 제공할 수 있다.
사용자가 예컨대, 이미지들 중 하나를 서로에 대하여 다시 포지셔닝함으로써 제 1 이미지와 제 2 이미지 간의 공간적 관계를 변경한다면, 일부 실시형태들에서 업데이트된 심 라인들이 자동으로 생성되고 및/또는 디스플레이될 수 있다. 현재 포지셔닝 및/또는 선택된 심 라인을 사용하여 제 1 및 제 2 이미지들로부터 생성된 최종 스티칭된 이미지의 프리뷰는, 스티칭을 위해 현재 선택된 심 라인 및 현재 이미지 포지셔닝을 사용하는 이미지 스티칭을 진행할지 여부를 결정하는데 사용하기 위해, 사용자에게 출력될 수 있다.
본원에 개시된 구현들은 그룹의 서브세트들을 포함하는 다수의 이미지들로부터 결합된 그룹 이미지를 생성하기 위한 시스템들, 방법들 및 장치를 제공한다. 이러한 실시형태들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있음을 당업자는 인식할 것이다.
다음의 설명에서, 예들에 대한 완전한 이해를 제공하기 위해 특정 세부사항들이 주어진다. 그러나, 예들은 이러한 특정 세부사항들이 없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들어, 불필요한 세부사항으로 예들을 모호하게 하지 않기 위해, 전기 컴포넌트들/디바이스들은 블록 다이어그램들로 보여질 수도 있다. 다른 사례들에서, 이러한 컴포넌트들, 다른 구조들, 및 기법들이 예들을 추가적으로 설명하기 위해 상세히 도시될 수도 있다.
예들은 프로세스로서 설명될 수도 있으며, 프로세스는 플로우차트, 플로우 다이어그램, 유한 상태 다이어그램, 구조 다이어그램, 또는 블록 다이어그램으로 도시됨에 또한 유의한다. 플로우차트가 동작들을 순차적인 프로세스로 설명할 수도 있지만, 동작들 중 다수는 병렬로, 또는 동시에 수행될 수 있고, 프로세스는 반복될 수 있다. 부가적으로, 동작들의 순서가 재배열될 수도 있다. 프로세스는 그 동작들이 완료될 경우에 종료된다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 소프트웨어 기능에 대응하는 경우, 프로세스의 종료는 호 기능 또는 메인 기능으로의 기능의 복귀에 대응한다.
당업자라면, 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 사용하여 표현될 수도 있음을 이해할 것이다. 예를 들어, 상기 설명 전반에 걸쳐 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압, 전류, 전자기파, 자계 또는 자성 입자, 광계 또는 광자, 또는 이들의 임의의 조합에 의해 표현될 수도 있다.
예시적인 사용자 인터페이스들의 개관
도 1a 내지 도 1c 는 그룹의 제 1 서브세트를 포함하는 제 1 이미지 및 그룹의 제 2 서브세트를 포함하는 제 2 이미지로부터 그룹 이미지를 생성하는 하나의 가능한 프로세스에서 몇가지 예시적인 단계들을 보여주는, 이미지 캡처 디바이스 (100) 의 다양한 사용자 인터페이스 디스플레이들을 도시한다. 사용자 인터페이스들은 이미지 캡처 디바이스의 디스플레이, 예컨대 뷰파인더 디스플레이 또는 이미지 캡처 디바이스와 연관된 다른 디스플레이 상에 제시될 수도 있다.
예를 들어, 다양한 구현들에서 및 도 1a 에 도시된 것과 같이, 제 1 이미지 (125) 는 그룹 (115) 의 제 1 부분의 캡처일 수도 있고, 제 1 이미지 (125) 에서의 공간 (120) 은 제 1 포토그래퍼 (105) 를 위해 예비될 수도 있다. 제 1 이미지 (125) 는 제 1 배경 (110) 및 제 1 전경을 포함할 수도 있고, 제 1 전경은 그룹 (115) 의 제 1 부분 및 가능하면 다른 전경 오브젝트들을 포함한다. 일부 실시형태들에서, 이미지 캡처 디바이스 (100) 는, 예컨대 제 1 및 제 2 이미지들의 픽셀들과 연관된 심도 맵 데이터를 분석함으로서, 또는 이미지 전경 또는 배경 영역들 중 하나와 공통적으로 연관된 오브젝트들, 예컨대 얼굴들 또는 하늘의 인식에 의해, 전경을 포함하는 제 1 픽셀 영역들 및 배경을 포함하는 제 2 픽셀 영역들을 결정할 수도 있다. 다른 실시형태들에서, 이미지 캡처 디바이스 (100) 는 전경 및 배경을 결정하지 않고, 본원에서 설명된 이미지 스티칭 방법들을 수행할 수도 있다.
도 1b 에 도시된 것과 같이, 제 1 이미지 (125) 를 캡처한 후에, 제 1 포토그래퍼 (105) 는 그를 위해 예비된 공간 (120) 내로 이동할 수도 있고, (손 (135) 에 의해 도시된) 제 2 포토그래퍼는 이미지 캡처 디바이스의 제어를 맡을 수도 있다. 그 후에, 이미지 캡처 디바이스 (100) 는 제 2 이미지 (130) 의 캡처를 가이드하기 위해 중첩된 라이브 뷰를 개시할 수도 있다. 도 1b 에 도시된 것과 같은 중첩된 라이브 뷰에서, 제 2 이미지 (130) 의 라이브 프리뷰가 이미지 캡처 디바이스 (100) 상에 제시될 수도 있다. 제 1 이미지 (125) 의 적어도 일부는 라이브 프리뷰 상에 중첩될 수도 있다. 다른 실시형태들에서, 라이브 프리뷰가 제 1 이미지 (125) 상에 중첩될 수도 있다. 제 1 이미지 (125) 와 제 2 이미지 (130) 의 라이브 프리뷰 중 하나 또는 양자에는 제 1 이미지와 라이브 프리뷰 양자가 적어도 부분적으로 가시적이도록, 특정 레벨의 반투명도가 할당될 수도 있다. 이미지 캡처 디바이스의 사용자는 일부 실시형태들에서, 제 1 이미지와 라이브 프리뷰 중 어느 것이 최상위 계층인지를 선택할 수도 있고, 각 계층의 불투명도를 세팅할 수 있다. 제 2 포토그래퍼는 라이브 프리뷰에 대하여 제 1 이미지 (125) 의 디스플레이된 부분의 포지션, 레이아웃, 및/또는 사이즈를 조정할 수도 있다. 제 2 포토그래퍼는 또한, 제 1 포토그래퍼 (105) 의 포지셔닝을 제 2 이미지 (130) 의 예비된 공간 (120) 내에 있도록 가이드하기 위해 중첩된 라이브 뷰를 사용할 수도 있다.
제 2 이미지 (130) 는 배경 (110) 및 제 2 전경을 포함할 수도 있고, 제 2 전경은 제 1 포토그래퍼 (105) 를 포함한다. 제 2 이미지의 배경은 제 1 배경 (110) 과 실질적으로 동일할 수도 있다. 일부 실시형태들에서, 제 1 및 제 2 이미지들은, 제 1 및 제 2 배경들이 실질적으로 유사하도록 하는 유사한 뷰포인트들로부터 임계 시간 주기 내에 취득될 수도 있다. 이미지 캡처 디바이스 (100) 는 제 1 이미지 배경의 프레이밍의 표시를 제 2 포토그래퍼에게 제공하도록 구성될 수도 있다. 이미지 캡처 디바이스 (100) 는 또한, 예컨대 배경 오브젝트들의 조명 및 위치와 같은, 제 1 및 제 2 이미지들의 다른 속성들의 유사도 레벨에 관련된 다른 표시들을 제 2 포토그래퍼에게 제공할 수도 있다. 일부 실시형태들에서, 이미지 캡처 디바이스는 제 1 및 제 2 이미지들의 속성들의 유사도 레벨을 결정하기 위해, 제 1 이미지의 픽셀들의 적어도 일부의 픽셀 값들을 제 2 이미지의 픽셀들의 적어도 일부의 픽셀 값들과 비교할 수도 있다. 픽셀 값들은 예컨대, 휘도, 색차, 구배 값들 또는 심도 값들일 수도 있다.
도 1c 에 도시된 것과 같이, 제 2 이미지 (130) 를 캡처한 후에, 이미지 캡처 디바이스 (100) 는 제 1 이미지 (125) 및 제 2 이미지 (130) 를 함께 결합 (fuse) 하거나, 스티칭하거나, 그렇지 않으면 병합함으로써, 실질적으로 심리스의 (seamless) 스티칭 또는 블렌딩으로 최종 이미지 (135) 를 구성할 수도 있다. 제 1 이미지의 전경과 제 2 이미지의 전경은 공유되는 배경 (110) 위에 함께 스티칭될 수도 있다. 따라서, 최종 이미지 (135) 는 제 1 포토그래퍼를 포함하는 전체 그룹을 포함한다. 카메라의 사용자는 예컨대, 제 1 이미지와 제 2 이미지를 서로에 대해 이동시킴으로써, 이미지 장면에서 중요한 컴포넌트들을 아웃라이닝 (outlining) 함으로써, 또는 제 1 및 제 2 이미지들이 함께 스티칭될 경계를 정의함으로써, 최종 이미지가 생성되는 방식에 대한 일부 제어를 행사할 수도 있다.
도 2a 내지 도 2c 는 한 쌍의 이미지들 (200, 205) 을 다양한 오버랩된 정렬들로 도시한다. 오버랩 영역들은 심 라인 또는 심 라인들과 함께 디스플레이된다. 심 라인들은 제 1 이미지의 일부가 제 2 이미지의 일부로 스티칭될 수 있는 경계를 나타낸다. 일부 실시형태들에서, 심 라인들은 공유되는 배경 위에 함께 스티칭된 제 1 전경과 제 2 전경 간의 경계를 결정하는데 사용될 수도 있다. 일부 실시형태들에서, 심 라인들은 이하 더 상세히 논의되는 것과 같이, 최저 에너지 경로 결정 프로세스들을 통해 이미지 캡처 디바이스 또는 다른 컴퓨팅 디바이스에 의해 자동으로 결정될 수도 있다. 최저 에너지 경로 결정 프로세스는 전술된 이미지 스티칭 프로세스의 서브-프로세스일 수도 있거나, 임의의 이미지 스티칭, 이미지 블렌딩, 또는 다른 이미지 결합 애플리케이션에서 사용될 수도 있다. 심 라인들은 일부 실시형태들에서 사용자에 의해, 예컨대 터치 감응식 디스플레이 상의 손가락 또는 스타일러스로 제 1 전경과 제 2 전경 중 하나 또는 양자의 경계를 표시하는 라인을 드로잉하는 사용자에 의해, 제공될 수도 있다. 일부 실시형태들은 사용자 입력 심 라인을 리파이닝하기 위해 최저 에너지 경로 결정 기술들을 사용할 수도 있다.
도 2a 및 도 2b 에 도시된 것과 같이, 사용자는 제 1 이미지 (200) 및 제 2 이미지 (205) 를 수동으로 정렬할 수도 있고, 오버랩하는 부분 위에 디스플레이된 하나 이상의 심 라인들 (225, 230) 을 입력하거나 제시될 수도 있다. 일부 실시형태들에서, 최저 에너지 경로 결정 프로세스는 심 라인 또는 심 라인들을 제공하도록 구성될 수도 있다. 다른 실시형태들에서, 사용자는 심 라인을 입력할 수 있다. 특정 실시형태들에서, 사용자 입력 및 자동 프로세스의 결합이 심 라인을 결정하는데 사용될 수 있다. 사용자는 또한, 제 1 및 제 2 이미지들 (200, 205) 이 디스플레이된 심 라인 및 선택된 오버랩하는 영역을 사용하여 스티칭될 경우에 어떻게 나타날 것인지의 프리뷰 (210, 215) 가 제시될 수도 있다. 프리뷰 이미지들 (210, 215) 에 의해 도시된 것과 같이, 도 2a 및 도 2b 의 오버랩하는 영역들은 스티칭된 이미지들 (210, 215) 에서 중복되는 배경 엘리먼트들이 발생하기 때문에, 최적의 스티칭된 이미지들을 생성하지 않는다.
일부 실시형태들에서, 심 라인 또는 심 라인들의 시각적 외형은, 예컨대 심 라인의 에너지의 레벨의 결정에 응답하여 디스플레이 상에 도시된 심 라인의 컬러를 변화시킴으로써 심 라인 또는 심 라인들의 에너지의 레벨의 표시를 제공할 수 있다. 일부 실시형태들에서, 적색 심 라인은 고 레벨 에너지를 표시할 수 있고, 그 결과 제 1 및 제 2 전경 중 하나 또는 양자에서 오브젝트들의 부분들이 최종 스티칭된 이미지에서 컷오프될 수도 있다. 황색 심 라인들은 적당한 양의 에너지를 표시할 수 있고, 그 결과 중복하는 배경 오브젝트들이 우측에 디스플레이된 것과 같은 최종 스티칭된 이미지에서 제시될 수도 있다. 녹색 심 라인들 또는 복수의 가능한 심 라인들을 포함하는 오버랩하는 부분의 녹색 영역은 낮은 양의 에너지를 표시할 수 있다. 다른 시각적 표시들이 다른 실시형태들에서 사용될 수 있고, 일부 실시형태들에서 전체 심 라인 에너지 또는 심 라인으로부터 분리된 다른 표시는 심 라인 에너지의 평가를 위해 사용자에게 디스플레이될 수 있다.
도 2c 의 오버랩된 제 1 및 제 2 이미지들 (200, 205) 에 도시된 것과 같이, 제 1 이미지 (200) 와 제 2 이미지 (205) 를 커팅 또는 크롭핑하거나, 또는 공유되는 배경 위에 스티칭하기 위해 제 1 이미지의 전경과 제 2 이미지의 전경을 커팅 또는 크롭핑하기 위해 저 에너지 심 라인들의 영역 (235) 내의 심 라인을 사용하는 것은, 촬영된 그룹의 모든 멤버들을 포함하고 어떤 인식가능한 반복되는 배경 오브젝트들도 포함하지 않는 실질적으로 심리스의 최종 스티칭된 이미지 (220) 를 발생할 수도 있다.
시스템 개관
도 3 은 그룹 또는 스티칭된 이미지를 캡처하고 생성하기 위한 예시적인 시스템 (300) 의 상위-레벨 블록 다이어그램을 도시하며, 그 시스템 (300) 은 이미징 센서 (315) 에 링크된 프로세서 (320) 를 포함하는 컴포넌트들의 세트를 갖는다. 작동중인 메모리 (305), 스토리지 (310), 전자 디스플레이 (325), 및 메모리 (330) 는 또한 프로세서 (320) 와 통신한다.
시스템 (300) 은 셀 폰, 디지털 카메라, 태블릿 컴퓨터, 개인 디지털 보조장치, 등등과 같은 디바이스일 수도 있다. 시스템 (300) 은 또한, 이미지들을 캡처하기 위해 내부 또는 외부 카메라를 이용하는 데스크탑 개인용 컴퓨터, 비디오 컨퍼런싱 스테이션 등과 같은 더 정지식의 디바이스일 수도 있다. 시스템 (300) 은 또한, 이미지 캡처 디바이스와 그 이미지 캡처 디바이스로부터 이미지 데이터를 수신하는 별도의 프로세싱 디바이스와의 조합일 수 있다. 복수의 애플리케이션들이 시스템 (300) 상에서 사용자에게 이용 가능할 수도 있다. 이들 애플리케이션들은 종래의 사진 애플리케이션들, 파노라마 스틸 이미지들 및 비디오, 및 이미지 스티칭 애플리케이션들을 포함할 수도 있다.
이미지 캡처 시스템 (300) 은 이미지들을 캡처하기 위해 이미지 센서 (315) 를 포함한다. 이미지 센서 (315) 는, 예를 들어, 전하 결합형 디바이스 (CCD), 상보적 금속 산화물 반도체 (CMOS) 센서 등등일 수 있다. 이미지 센서 (315) 는 프로세서 (320) 에 커플링 되어, 캡처된 이미지를 이미지 프로세서 (320) 에 송신할 수도 있다. 이미지 프로세서 (320) 는, 하기에서 더 상세히 설명될 바와 같이, 고 품질의 스티칭된 이미지를 출력하기 위하여 수신된 캡처된 이미지에 대하여 다양한 동작들을 수행하도록 구성될 수도 있다.
프로세서 (320) 는 범용 프로세싱 유닛 또는 이미징 애플리케이션들을 위해 특수하게 설계된 프로세서일 수도 있다. 도시된 바와 같이, 프로세서 (320) 는 메모리 (330) 및 작동중인 메모리 (305) 에 접속된다. 도시된 실시형태에 있어서, 메모리 (330) 는 이미징 센서 제어 모듈 (335), 사용자 인터페이스 제어 모듈 (340), 스티칭된 이미지 생성 모듈 (345), 캡처 제어 모듈 (350), 및 오퍼레이팅 시스템 (355) 을 저장한다. 이들 모듈들은 다양한 이미지 프로세싱 및 디바이스 관리 작업들을 수행하도록 프로세서를 구성하는 명령들을 포함한다. 작동중인 메모리 (305) 는, 메모리 (330) 의 모듈들에 포함된 프로세서 명령들의 작동중인 세트를 저장하기 위해 프로세서 (320) 에 의해 사용될 수도 있다. 대안적으로, 작동중인 메모리 (305) 는 또한, 디바이스 (300) 의 동작 동안 생성된 동적 데이터를 저장하기 위해 프로세서 (320) 에 의해 사용될 수도 있다.
상기 서술된 바와 같이, 프로세서 (320) 는 메모리 (330) 에 저장된 몇몇 모듈들에 의해 구성된다. 이미징 센서 제어 모듈 (335) 은, 이미징 센서 (315) 의 포커스 포지션을 조정하도록, 프로세서 (320) 를 구성하는 명령들을 포함한다. 이미징 센서 제어 모듈 (335) 은 또한, 이미징 센서 (315) 로 이미지들을 캡처하도록, 프로세서 (320) 를 구성하는 명령들을 포함한다. 그러므로 프로세서 (320) 는, 이미지 캡처 제어 모듈 (335), 이미징 센서 (315), 및 작동중인 메모리 (305) 와 함께, 스티칭된 이미지 또는 이미지들의 세트를 포착하는 하나의 수단을 나타낸다.
사용자 인터페이스 제어 모듈 (340) 은 이미지들의 세트를 캡처하고 스티칭 하는데 있어 사용자 또는 사용자들을 가이드하기 위해 디스플레이 (325) 상에 다양한 사용자 인터페이스 엘리먼트들일 출력하도록, 프로세서 (320) 를 구성하는 명령들을 포함한다. 도 1a 내지 도 2c 를 참조하여 전술된 것과 같이, 사용자 인터페이스 엘리먼트들인 반투명하게 디스플레이된 제 1 이미지 및 제 2 이미지, 제 1 이미지의 포토그래퍼를 위한 공간을 예비하기 위한 제 1 이미지에서의 마킹된 위치, 심 라인 또는 심 라인들, 및 프리뷰 이미지를 포함할 수 있다. 사용자 인터페이스 제어 모듈 (340) 은 또한, 사용자 입력, 예컨대 스티칭된 이미지들의 상대적인 포지셔닝 및 심 라인 입력 및 선택을 수신하고, 사용자 입력에 적어도 부분적으로 기초하여 이미지들의 세트를 스티칭 하도록 프로세스 (320) 를 구성하는 명령들을 포함한다.
스티칭된 이미지 생성 모듈은 이미지들의 세트를 함께 최종 스티칭된 이미지로 스티칭 하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수도 있다. 일부 실시형태들에서, 명령들은 프로세서로 하여금, 이미지들의 세트의 각각의 전경을 식별하게 하고, 이미지들의 세트의 공유되는 배경을 식별하게 할 수도 있다. 스티칭된 이미지 생성 모듈은 이미지들의 세트를 정렬하고 오버랩하는 부분을 결정할 수 있다. 스티칭된 이미지 생성 모듈은 또한, 오버랩하는 부분에서 "저 에너지" 심 라인을 식별하고, 저 에너지 심 라인에 기초하여 이미지들의 세트에서 각 이미지의 일부들을 함께 스티칭하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다.
캡처 제어 모듈 (350) 은, 시스템 (300) 의 전체 이미지 캡처 기능들을 제어하는 명령들을 포함할 수도 있다. 예를 들어, 일 실시형태에 있어서, 캡처 제어 모듈 (350) 은, 이미징 센서 (315) 를 이용하여 타겟 이미지 장면의 제 1 이미지 데이터를 캡처하도록, 프로세서 (320) 를 구성하기 위한 서브루틴들을 호출하는 명령들을 포함할 수도 있다. 그 후에, 캡처 제어 모듈 (350) 은 사용자 인터페이스 제어 모듈 (340) 을 호출하여 사용자가 이미징 센서 (315) 를 사용하여 타겟 이미지 장면의 제 2 이미지 데이터를 캡처하는 것을 가이드할 수도 있다. 캡처 제어 모듈 (350) 은 또한, 스티칭된 이미지 생성 모듈 (345) 을 호출하여 타겟 이미지 장면의 제 1 및 제 2 이미지들을 자동으로 정렬하고, 정렬된 이미지들의 오버랩하는 영역에 대한 저 에너지 심 라인을 결정하고, 상기 정렬 및 심 라인에 기초하여 제 1 이미지 및 제 2 이미지를 스티칭할 수도 있다. 캡처 제어 모듈 (260) 은 또한, 사용자 인터페이스 제어 모듈 (340) 과 스티칭된 이미지 생성 모듈 (345) 을 호출하는 것을 교번하여 자동 정렬 및 심 라인 결정들로 사용자 입력에 기초한 이미지 스티칭을 보충할 수 있고, 또한 그 반대도 가능하다.
오퍼레이팅 시스템 모듈 (355) 은 시스템 (300) 의 메모리 및 프로세싱 리소스들을 관리하도록, 프로세서 (320) 를 구성한다. 예를 들어, 오퍼레이팅 시스템 모듈 (355) 은 전자 디스플레이 (325), 스토리지 (310), 또는 이미징 센서 (315) 와 같은 하드웨어 리소스들을 관리하기 위해 디바이스 드라이버들을 포함할 수도 있다. 따라서, 일부 실시형태들에 있어서, 상기 논의된 이미지 프로세싱 모듈들에 포함된 명령들은, 이들 하드웨어 리소스들과 직접 상호작용하지 않고 대신 오퍼레이팅 시스템 컴포넌트 (355) 에 위치된 표준 서브루틴들 또는 API들을 통해 상호작용할 수도 있다. 그 후, 오퍼레이팅 시스템 (355) 내의 명령들은 이들 하드웨어 컴포넌트들과 직접 상호작용할 수도 있다.
프로세서 (320) 는 추가로, 캡처된 이미지를 사용자에게 디스플레이하기 위해 디스플레이 (325) 를 제어하도록 구성될 수도 있다. 디스플레이 (325) 는 이미지 센서 (315) 를 포함한 이미징 디바이스 외부에 있을 수도 있거나 이미징 디바이스의 부분일 수도 있다. 디스플레이 (325) 는 또한, 이미지를 캡처하기 전에 사용자에 대한 뷰 파인더를 제공하도록 구성될 수도 있거나, 또는 메모리에 저장되거나 사용자에 의해 최근에 캡처된 캡처 이미지를 디스플레이하도록 구성될 수도 있다. 디스플레이 (325) 는 LCD 또는 LED 스크린을 포함할 수도 있으며, 터치 감응 기술들을 구현할 수도 있다. 사용자 인터페이스 제어 모듈 (340) 에 의해 생성된 사용자 인터페이스는 디스플레이 (325) 상에서 전체적으로 또는 부분적으로 구현될 수도 있다. 예를 들어, 디스플레이 (325) 가 터치 감응 기술들을 포함할 경우, 사용자 인터페이스는 디스플레이 (325) 상에서 완전히 구현될 수도 있다. 터치 기술이 디스플레이 (325) 를 위해 사용되지 않는 특정 실시형태들에서, 사용자 인터페이스는 디스플레이된 엘리먼트들뿐만 아니라, 버튼들 또는 휠과 같은 사용자 입력 수단들을 포함할 수도 있다.
프로세서 (320) 는 스토리지 모듈 (310) 에 데이터, 예를 들어, 캡처된 이미지들, 이미지 정렬, 및 심 라인 위치 및 에너지 데이터를 나타내는 데이터를 기록할 수도 있다. 스토리지 모듈 (310) 이 종래의 디스크 디바이스로서 그래픽으로 표현되지만, 당업자는 스토리지 모듈 (310) 이 임의의 저장 매체 디바이스로서 구성될 수도 있음을 이해할 것이다. 예를 들어, 스토리지 모듈 (310) 은 플로피 디스크 드라이브, 하드 디스크 드라이브, 광학 디스크 디바이스 또는 자기광학 디스크 디바이스와 같은 디스크 디바이스, 또는 플래시 메모리, RAM, ROM, 및/또는 EEPROM 과 같은 솔리드 스테이트 메모리를 포함할 수도 있다. 스토리지 모듈 (310) 은 또한 다중 메모리 유닛들을 포함할 수 있으며, 그 메모리 유닛들 중 임의의 하나는 이미지 캡처 디바이스 (300) 내에 있도록 구성될 수도 있거나 또는 이미지 캡처 시스템 (300) 외부에 있을 수도 있다. 예를 들어, 스토리지 모듈 (310) 은, 이미지 캡처 시스템 (300) 내에 저장된 시스템 프로그램 명령들을 포함하는 ROM 메모리를 포함할 수도 있다. 스토리지 모듈 (310) 은 또한, 카메라로부터 착탈가능할 수도 있는, 캡처된 이미지들을 저장하도록 구성된 메모리 카드들 또는 고속 메모리들을 포함할 수도 있다.
도 3 이 프로세서, 이미징 센서, 및 메모리를 포함하는 개별 컴포넌트들을 포함하는 시스템을 도시하지만, 이들 개별 컴포넌트들은 특정 설계 목적들을 달성하기 위해 다양한 방식들로 조합될 수도 있음을 당업자는 인식할 것이다. 예를 들어, 대안적인 실시형태에서, 메모리 컴포넌트들은 비용을 절약하고 성능을 개선하기 위해 프로세서 컴포넌트들과 결합될 수도 있다.
추가로, 도 3 이 2 개의 메모리 컴포넌트들 - 몇몇 모듈들을 포함하는 메모리 컴포넌트 (330) 와 작동중인 메모리를 포함하는 개별 메모리 (305) 를 - 을 도시하지만, 몇몇 실시형태들은 상이한 메모리 구조들을 활용하는 것을 당업자는 인식할 것이다. 예를 들어, 설계는 메모리 (330) 에 포함된 모듈들을 구현하는 프로세서 명령들의 저장을 위해 ROM 또는 정적 RAM 메모리를 활용할 수도 있다. 대안적으로, 프로세서 명령들은, 시스템 (300) 에 통합되거나 외부 디바이스 포트를 통해 접속되는 디스크 저장 디바이스로부터 시스템 시동 시에 판독될 수도 있다. 그 후에, 프로세서 명령들은 프로세서에 의한 실행을 용이하게 하기 위해 RAM 내에 로딩될 수도 있다. 예를 들어, 작동중인 메모리 (305) 는 RAM 메모리일 수도 있고, 프로세서 (320) 에 의한 실행 전에 명령들이 작동중인 메모리 (305) 내로 로딩된다.
사용자 인터페이스 제어 시스템 개관
도 4 는 도 3 의 사용자 인터페이스 제어 모듈 (340) 의 일 실시형태를 도시한다. 사용자 인터페이스 제어 모듈 (340) 은 제 1 이미지 디스플레이 모듈 (405), 제 2 이미지 디스플레이 모듈 (410), 투명도 모듈 (415), 이미지 포지셔닝 모듈 (420), 심 디스플레이 모듈 (425), 사용자 입력 모듈 (430), 및 스티칭된 프리뷰 모듈 (435) 을 포함한다. 이미지 캡처 시스템 (300) 의 맥락 내에서 논의되지만, 사용자 인터페이스 제어 모듈 (340) 은 이미지 스티칭을 위해 타겟 장면의 다수의 이미지들의 이미지 데이터를 캡처하기에 적합한 다른 이미지 캡처 시스템들, 예컨대 파노라마 이미지 캡처 및 스티칭을 위한 시스템들에서 구현될 수 있다.
제 1 이미지 디스플레이 모듈 (405) 은 디스플레이 (325) 상에 제 1 이미지의 프리뷰 이미지를 디스플레이하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 프리뷰 이미지는 도 1a 에 도시된 것과 같은, 제 1 이미지의 포토그래퍼와 같은 하나 이상의 손실된 그룹 멤버들을 위한 공간을 예비하는 마킹된 위치를 포함할 수 있다. 제 1 이미지 디스플레이 모듈 (405) 은 또한, 예비된 공간이 제 1 이미지의 검출된 전경의 좌측 또는 우측 상에 있어야 하는지 또는 다른 위치에 있어야 하는지의 여부를 요청하는 프롬프트를 사용자 또는 포토그래퍼에 제공하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있고, 또한 사용자가 예비된 공간의 사이즈를 선택하게 할 수도 있다. 제 2 의 또는 후속하는 이미지의 캡처 동안, 제 1 이미지 디스플레이 모듈 (405) 은 제 2 의 또는 후속하는 이미지의 프리뷰 이미지와의 동시의 디스플레이를 위해, 메모리로부터 제 1 이미지의 저장된 버전을 회수할 수 있다.
제 2 이미지 디스플레이 모듈 (410) 은 디스플레이 (325) 상에 제 2 이미지의 프리뷰 이미지를 디스플레이하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 제 2 이미지 디스플레이 모듈 (410) 에는 또한, 제 1 이미지의 배경 부분과 제 2 이미지의 배경 부분 간의 유사도 레벨의 표시가 제공될 수도 있어서, 사용자는 2 개의 이미지들이 스티칭에 적합한지의 여부 또는 하나 또는 양자의 이미지들이 다시 캡처되어야만 하는지의 여부를 평가할 수 있다. 제 2 이미지 디스플레이 모듈 (410) 은, 제 2 포토그래퍼가 제 1 이미지의 배경과 유사한 배경을 갖는 이미지를 캡처하는 것을 돕기 위해, 디스플레이 (325) 상에 제 1 이미지의 프레이밍 정보를 디스플레이하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 3 이상의 이미지들의 스티칭된 이미지를 생성하도록 구성된 실시형태들에서, 추가의 이미지 디스플레이 모듈들은 사용자 인터페이스 제어 모듈 (340) 에 포함될 수 있다.
투명도 모듈 (415) 은 제 2 이미지의 캡처 동안 디스플레이 (325) 상에 제 1 이미지와 제 2 이미지의 프리뷰 이미지의 오버레이를 디스플레이하고, 제 1 이미지와 제 2 이미지의 프리뷰 이미지 중 적어도 하나에 투명도 레벨을 할당하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 제 2 이미지의 캡처 후에, 투명도 모듈 (415) 은 디스플레이 (325) 상에 제 1 이미지와 제 2 이미지의 오버레이를 디스플레이하고, 제 1 이미지와 제 2 이미지 중 적어도 하나에 투명도 레벨을 할당하도록, 프로세서 (320) 를 구성할 수 있다. 투명도 모듈 (415) 은 또한, 사용자가 투명하게 디스플레이할 이미지를 선택하게 하고, 그 이미지에 투명도 레벨을 할당하게 하는 프롬프트를 사용자에게 제공하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 예를 들어, 제 1 이미지에는 투명도 레벨이 할당되고, 전경 포지션에 할당될 수 있고, 제 2 이미지의 프리뷰 또는 제 2 이미지는 배경 포지션에 할당되고 불투명하게 디스플레이될 수 있다. 다른 예에서, 제 2 이미지의 프리뷰 또는 캡처된 제 2 이미지에는 투명도 레벨이 할당되고, 전경 포지션에 할당될 수 있으며, 제 1 이미지는 배경 포지션에 할당되고 불투명하게 디스플레이될 수 있다. 일부 실시형태들에서, 사용자는 제 2 이미지를 전경으로 이동시키고 제 1 이미지를 배경으로 이동시키거나, 그 반대로 이동시키는 옵션을 선택할 수 있다.
이미지 포지셔닝 모듈 (420) 은 제 1 이미지와 제 2 이미지, 또는 제 1 이미지와 제 2 이미지의 프리뷰를 서로에 대하여 정렬할 수도 있다. 일부 실시형태들에서, 제 1 이미지 및 제 2 이미지는 초기에 각각 디폴트 시작 포지션에 포지셔닝될 수도 있고, 예컨대 제 2 이미지는 전체 뷰파인더를 점유하고, 디스플레이된 제 1 이미지의 제 1 부분은 도 1b 에 도시된 것과 같이, 제 2 이미지를 디스플레이되지 않은 제 1 이미지의 제 2 부분과 오버레이한다. 이미지 포지셔닝 모듈 (420) 은 예컨대, 제 1 이미지와 제 2 이미지를 다시 포지셔닝하는 것과 관련하여, 사용자 입력 모듈 (430) 로부터 사용자 입력을 수신할 수 있다. 일부 실시형태들에서, 이미지 포지셔닝 모듈 (420) 은 스티칭된 이미지 생성 모듈 (345) 로부터의 공통의 특징들의 분석에 기초하여, 제 1 이미지와 제 2 이미지, 또는 제 1 이미지와 제 2 이미지의 프리뷰를 정렬할 수도 있다.
심 디스플레이 모듈 (425) 은 제 1 및 제 2 이미지들의 오버랩하는 부분 내에서 디스플레이 (325) 상에 심 라인을 디스플레이하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 심 라인 위치는 일부 실시형태들에서, 사용자 입력 모듈 (430) 로부터 수신될 수 있다. 다른 실시형태들에서, 심 라인 위치는 스티칭된 이미지 생성 모듈 (345) 로부터 수신될 수 있다. 심 디스플레이 모듈 (425) 은 심 라인의 시각적 외형을 변경하거나 심 라인의 전체 에너지 레벨의 다른 표시를 사용자에게 제공하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 심 라인의 전체 에너지 레벨은 스티칭된 이미지 생성 모듈 (345) 에 의해 제공될 수 있고, 최종 스티칭된 이미지의 품질 레벨을 평가하는데 있어서 사용자에게 유용할 수도 있다.
사용자 입력 모듈 (430) 은 이미지 캡처 및 스티칭 프로세스들 동안 사용자 입력을 수신하기 위해 이미지 캡처 시스템 (300) 의 임의의 다른 사용자 인터페이스 엘리먼트들 및 디스플레이 (325) 와 통신할 수 있다. 사용자 입력들은 이미지 캡처 및 스티칭 프로세스 동안 하나 이상의 인자들, 예컨대 포토그래퍼에 대하여 예비된 공간의 사이즈 및/또는 포지셔닝, 투명도 할당들, 이미지들의 상대적인 포지셔닝, 배경 및 전경의 아웃라인, 정렬을 위한 공통 오브젝트들의 식별, 심 입력, 이미지 스티칭을 위한 현재 정렬 및 심 라인의 허용, 및 크롭핑을 위해 제공될 수 있다. 일부 실시형태들에서, 사용자 입력이 인자들 중 하나 이상을 위해 제공되지 않는 경우에, 사용자 입력 모듈 (430) 은 스티칭된 이미지 생성 모듈 (345) 에 그 인자에 대하여 요구되는 정보를 요청하기 위한 표시를 프로세서 (320) 에 제공할 수 있다. 특정 실시형태들에서, 사용자 입력들 및 그 인자들에 대한 자동 결정들이 결합될 수 있거나, 인자들에 대한 자동 결정이 그 인자에 대한 사용자 입력의 대안으로서 사용자에게 제시될 수 있다.
스티칭된 프리뷰 모듈 (435) 은 도 2a 내지 도 2c 의 프리뷰 (210, 215 및 220) 에 도시된 것과 같이, 현재 선택된 이미지 정렬 및 심 라인을 사용하여 최종 스티칭된 이미지 결과가 어떻게 보이는지의 프리뷰를 디스플레이 (325) 에 디스플레이하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 일부 실시형태들에서, 프리뷰는 디스플레이 (325) 의 상이한 부분들 상에 제 1 및 제 2 이미지들의 오버레이와 함께 디스플레이될 수도 있다. 다른 실시형태들에서, 스티칭된 프리뷰 모듈 (435) 은 오버레이 뷰와 프리뷰 뷰 사이를 스위칭하기 위해 사용자 선택가능한 옵션을 디스플레이 (325) 상에 제시하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 프리뷰를 제시하는 것은 사용자가 상대적인 이미지 정렬 및/또는 심 라인 위치에 대하여 조정들을 실행할 수 있게 하고, 최종 스티칭된 이미지를 생성하는 것으로 진행하는 것을 채택하기 전에 최종 스티칭된 이미지에 대한 조정들의 영향들을 볼 수 있게 한다.
자동 스티칭된 이미지 생성 시스템 개관
도 5 는 자동화된 이미지 스티칭 프로세스를 실행하기 위해 사용자-가이드된 이미지 캡처 및 스티칭을 보충하는데 또는 사용자-가이드 이미지 캡처 및 스티칭 대신에 사용될 수 있는, 도 3 의 스티칭된 이미지 생성 모듈 (345) 의 일 실시형태를 도시한다. 이미지 캡처 시스템 (300) 의 맥락 내에서 논의되지만, 스티칭된 이미지 생성 모듈 (345) 은 이미지 스티칭을 위해 타겟 장면의 다수의 이미지들의 이미지 데이터를 캡처하기에 적합한 다른 이미지 캡처 시스템들, 예컨대 파노라마 이미지 캡처 및 스티칭을 위한 시스템들에서 구현될 수 있다.
스티칭된 이미지 생성 모듈 (345) 은 정렬 모듈 (505), 오버랩 결정 모듈 (510), 심 생성기 (515), 심 에너지 계산기 (520), 이미지 스티칭 모듈 (525), 및 이미지 크롭핑 모듈 (530) 을 포함한다. 이미지 데이터가 스티칭된 이미지 생성 모듈 (345) 의 다양한 모듈들을 통해 선형 방식으로 흐르는 것으로 도시되지만, 일부 실시형태들에서 개별 모듈들은 그 모듈들 모두를 통해 이미지 데이터를 통과시키지 않고 데이터를 생성하도록 호출될 수 있다.
이미지들 (1 내지 N) 의 이미지 데이터는 정렬 모듈 (505) 내로 입력될 수 있다. 정렬 모듈 (505) 은 제 1 및 제 2 이미지들을 정렬하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 예를 들어, 정렬 모듈 (505) 은 제 1 이미지로부터의 픽셀 좌표들을 제 2 이미지의 대응하는 픽셀 좌표들로 맵핑하기 위해, 알려진 정렬 기술들을 사용하여 이미지들 중에서 대응 관계들을 발견할 수 있다. 예를 들어, 픽셀-대-픽셀 매칭 또는 특징-기반 방법들은 이미지들 간의 대응 관계들을 식별하는데 사용될 수 있다. 정렬 모듈은 제 1 이미지 및 제 2 이미지 중 하나의 회전, 스케일, 렌즈 왜곡, 및/또는 원근법 (perspective) 을 변환하여, 대응 관계들에 기초하여 그 이미지를 제 1 이미지 및 제 2 이미지 중 다른 이미지와 정렬할 수 있다. 정렬 모듈 (505) 은 정렬된 이미지 데이터를 이미지 스티칭 모듈 (525) 로 송신할 수 있다.
정렬된 이미지 데이터는 정렬 모듈 (505) 로부터 오버랩 결정 모듈 (510) 로 송신될 수 있다. 오버랩 결정 모듈 (510) 은 정렬된 제 1 및 제 2 이미지들의 오버랩하는 영역을 식별하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 오버랩하는 영역은 일부 실시형태들에서, 각각의 정렬된 이미지의 에지들에 대한 X 및 Y 값들을 위치시킴으로써 식별될 수 있다. 각각의 이미지는 상부, 하부, 좌측 및 우측 에지를 갖는다. 수평으로 연장하는 x 축 및 수직으로 연장하는 y 축을 갖는 정렬된 이미지들 양자를 포함하는 직사각형 영역을 포함하는 (x, y) 좌표 시스템을 사용하여, 각각의 상부 에지 및 각각의 하부 에지에는 좌표 시스템 내에서의 수직 포지셔닝에 기초하는 Y 값이 할당될 수 있고, 각각의 좌측 에지 및 각각의 우측 에지에는 좌표 시스템 내에서의 수평 포지셔닝에 기초하는 X 값이 할당될 수 있다. 좌표 시스템의 상부 좌측 픽셀이 (0, 0) 로 라벨링된다면, 2 이상의 이미지들에 대한 오버랩하는 영역은 최고 Y 값을 갖는 상부 에지, 최저 Y 값을 갖는 하부 에지, 최고 X 값을 갖는 좌측 에지, 및 최저 X 값을 갖는 우측 에지에 의해 정의될 수 있다. 상기 예는 예시의 목적들을 위해 제공되고, 오버랩하는 영역을 확인하기 위한 다른 알려진 수단들은 다른 실시형태들에서 오버랩 결정 모듈 (510) 에 의해 구현될 수 있다. 오버랩 결정 모듈 (510) 은 오버랩 영역을 이미징 스티칭 모듈 (525) 로 송신할 수 있다.
오버랩 영역은 오버랩 결정 모듈 (510) 로부터 심 생성기 (515) 로 송신될 수 있다. 심 생성기 (515) 는 오버랩하는 영역 내의 적어도 하나의 저 에너지 심 라인을 식별하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 저 에너지 심 라인은 고 품질의 최종 스티칭된 에너지를 가능하게 생성할 수 있는, 제 1 이미지와 제 2 이미지 간의 경계를 나타낼 수 있다. 저 에너지 심 라인 생성 프로세스는 시작 픽셀에서 시작할 수도 있고, 시작 픽셀은 일부 실시형태들에서 오버랩하는 영역의 최상위 로우에서 최좌측 픽셀일 수도 있지만, 다른 실시형태들에서 오버랩하는 영역 내의 임의의 다른 픽셀일 수 있다. 그 후에, 저 에너지 심 라인 생성 프로세스는 시작 픽셀에 인접하는 픽셀들의 각각에 대하여 제 1 이미지와 제 2 이미지로부터의 픽셀 값들 간에 차이 값을 계산할 수도 있다. 최저 차이 값을 갖는 픽셀은 현재 심 라인 픽셀로서 세팅될 수도 있고, 그 심 라인은 현재 심 라인 픽셀의 방향으로 드로잉될 수도 있다. 일부 실시형태들에서, 저 에너지 심 라인 생성 프로세스는 현재 생성되고 있는 심 라인이 이미지 스티칭에 적합하지 않은 것을 결정할 수도 있고, 새로운 시작 픽셀에서 시작할 수도 있다. 이들 단계들은 심 라인이 완성될 때까지 반복될 수도 있다.
심 라인 위치 데이터 및 (시작 픽셀을 제외한) 심 라인에서의 각각의 픽셀에 대한 차이 값들은 일부 실시형태들에서, 심 생성기 (515) 로부터 심 에너지 계산기 (520) 로 옵션으로 송신될 수 있다. 심 에너지 계산기 (520) 는 예컨대, 차이 값들을 합산함으로써 심 라인의 전체 에너지 레벨을 계산하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 일부 실시형태들에서, 심 라인의 전체 에너지 레벨이 임계치 이상이라면, 심 에너지 계산기 (520) 는 새로운 심 라인을 생성하기 위해 심 생성기 (515) 를 호출하도록, 프로세서 (320) 를 구성하는 명령들을 포함할 수 있다. 심 에너지 계산기 (520) 는 심 라인 위치를 이미지 스티칭 모듈 (525) 로 출력할 수 있다. 다른 실시형태들에서, 심 생성기 (515) 는 심 라인 위치를 이미지 스티칭 모듈 (525) 로 직접 출력할 수 있다.
이미지 스티칭 모듈 (525) 은 이미지들 (1 내지 N) 의 스티칭된 버전을 생성하기 위해 이미지 정렬 데이터 및 심 라인 위치를 사용하도록, 프로세서 (320) 를 구성하는 명령들을 포함한다. 예컨대, 2-이미지 세트에 대하여, 심 라인의 좌측에 위치된 2 개의 이미지들 중 최좌측 이미지로부터의 픽셀들이 최종 스티칭된 이미지로 맵핑될 수 있는 동시에, 심 라인의 우측에 위치된 2 개의 이미지들 중 최우측 이미지로부터의 픽셀들이 최종 스티칭된 이미지로 맵핑될 수 있고, 시차 (parallax) 및 장면 이동뿐만 아니라 변화하는 이미지 노출들에 의해 발생된 블러 또는 고스트와 같은 잠재적인 문제들을 정정하도록 주의한다. 3 이상의 이미지들을 포함하는 이미지 세트들에 대하여, 다수의 심 라인들의 좌측 및 우측에 위치된 픽셀들뿐만 아니라 다수의 심 라인들에 의해 형성된 경계들 사이에 위치된 픽셀들이 함께 블렌딩되어 최종 이미지를 형성할 수 있다. 심 라인들을 따라, 이미지 스티칭 모듈 (525) 은 그 심 라인을 따라 스티칭되고 있는 하나 또는 양자의 이미지들로부터 픽셀 값들을 결합하거나, 가중하거나, 블렌딩하거나, 또는 선택할 수 있다.
이미지 스티칭 모듈 (525) 에 의해 생성된 스티칭된 이미지 데이터는 이미지 크롭핑 모듈 (530) 로 송신될 수 있다. 크롭핑 모듈 (530) 은 스티칭된 이미지 데이터를 원하는 비율, 예컨대 공통 이미지 비율 또는 사용자에 의해 미리 세팅된 비율로 크롭핑할 수 있다. 크롭핑 모듈 (530) 은 최종 스티칭된 이미지로부터 비어있는 픽셀 영역들을 제외시키기 위해 스티칭된 이미지를 크롭핑할 수 있다. 최종 스티칭된 이미지는 저장 및/또는 사용자에게로의 프리젠테이션을 위해 이미지 스티칭 모듈 (525) 로부터 출력될 수 있다.
전술된 것과 같은 스티칭된 이미지 생성 모듈 (345) 이 사용자 입력 없이 이미지들의 세트를 함께 자동적으로 스티칭할 수 있지만, 일부 실시형태들에서 정렬, 심 라인, 또는 크롭핑과 같은 하나 이상의 이미지 스티칭 인자들에 관한 사용자 입력이 스티칭된 이미지 생성 모듈 (345) 의 대응하는 모듈 내로 입력되어 사용자 선호도들 또는 개인적 터치를 이미지 스티칭 프로세스로 제공할 수 있다. 다른 실시형태들에서, 스티칭된 이미지 생성 모듈 (345) 의 모듈들 중 하나 이상은 사용자가 이미지 스티칭 인자에 대해 어떤 정보도 제공하지 않거나 차선의 최종 스티칭된 이미지 결과를 산출할 수도 있는 정보를 제공한, 사용자-가이드된 이미지 스티칭 프로세스 동안 정보를 제공하도록 호출될 수 있다. 사용자가 이미지 스티칭 프로세스에 수반된다면, 이미지 스티칭 모듈 (525) 및 이미지 크롭핑 모듈 (530) 은 프리뷰 스티칭된 이미지를 생성하도록 호출될 수도 있고, 사용자가 정렬 또는 심 라인 위치와 같은 이미지 스티칭 인자들 중 하나 이상을 조정할 경우, 업데이트 프리뷰 스티칭된 이미지를 생성하도록 자동으로 호출될 수도 있다.
예시적인 이미지 스티칭 프로세스들의 개관
도 6 은 사용자-가이드된 이미지 스티칭을 위한 예시적인 프로세스 (600) 를 도시한다. 도시의 용이함을 위해, 프로세스 (600) 는 도 3 및 도 4 의 사용자 인터페이스 제어 모듈 (340) 에 의해 구현되는 것으로 논의된다. 다른 적합한 이미지 캡처 시스템들이 다른 실시형태들에서 프로세스 (600) 를 구현할 수 있다.
프로세스 (600) 는 그룹의 제 1 부분을 포함하는, 타겟 장면의 제 1 이미지가 캡처되는 블록 (605) 에서 시작한다. 블록 (605) 은 일부 실시형태들에서, 제 1 이미지 디스플레이 모듈 (405), 이미지 센서 (315), 및 이미징 센서 제어 모듈 (335) 의 조합에 의해 수행될 수 있다. 블록 (605) 의 일 실시형태가 도 1a 에 도시된다.
그 후에, 프로세스 (600) 는 블록 (610) 으로 천이하고, 여기서 제 2 이미지 디스플레이 모듈 (410) 은 그룹의 제 2 부분을 포함하는, 타겟 장면의 제 2 이미지의 프리뷰 이미지를 이미지 캡처 시스템 (300) 의 디스플레이 (325) 상에 그 제시한다. 그 후에, 프로세스 (600) 는 블록 (615) 으로 천이하고, 여기서 투명도 모듈 (415) 및 제 1 이미지 디스플레이 모듈 (405) 은 제 1 이미지 및 제 2 이미지의 프리뷰 이미지를 오버레이하기 위해 협력하며, 그 이미지들 중 적어도 하나에 대한 투명도를 이용하여 양자의 이미지들의 디스플레이된 영역들의 특징들이 사용자에 의해 동시에 보여질 수 있도록 한다. 프로세스 (600) 는 블록 (620) 으로 천이하고, 여기서 사용자 입력 모듈 (430) 은 제 1 이미지와 프리뷰 이미지의 정렬에 관한 사용자 입력을 수신하고, 이미지 포지셔닝 모듈 (420) 은 사용자에 의해 세팅된 상대적인 정렬을 저장한다. 일부 실시형태들에서, 블록 (620) 은 도 5 의 정렬 모듈 (505) 에 의해 보충되거나 실행될 수 있다. 블록 (610, 615, 및 620) 의 일 실시형태가 도 1b 에 도시된다.
프로세스 (600) 는 블록 (625) 으로 천이하고, 여기서 그룹의 제 2 부분을 포함하는, 타겟 장면의 제 2 이미지가 캡처된다. 블록 (625) 은 일부 실시형태들에서, 제 2 이미지 디스플레이 모듈 (410), 이미지 센서 (315), 및 이미징 센서 제어 모듈 (335) 의 조합에 의해 수행될 수 있다. 블록 (630) 에서, 사용자 입력 모듈 (430) 은 제 1 이미지 및 제 2 이미지를 스티칭할 경계에 대한 심 라인 위치에 관한 사용자 입력을 수신할 수 있다. 블록 (630) 은 일부 실시형태들에서 심 생성기 (515) 에 의해 보충되거나 실행될 수 있다.
블록 (635) 에서, 프로세스 (600) 는 상대적인 이미지 정렬 및 심 라인 위치에 관한 사용자 입력에 적어도 부분적으로 기초하여, 제 1 이미지 및 제 2 이미지를 스티칭하고 스티칭된 이미지를 최종 이미지로 크롭핑한다. 옵션으로, 스티칭된 프리뷰 모듈 (435) 은 최종 스티칭된 이미지의 프리뷰를 사용자에게 제시하여 사용자가 품질을 판단할 수 있게 하고, 상대적인 이미지 포지셔닝 및/또는 심 라인 위치에 대한 임의의 원하는 조정들을 실행할 수 있다. 최종 스티칭된 이미지는 저장되고 및/또는 사용자에게 디스플레이될 수도 있다. 일부 실시형태들에서, 제 1 및 제 2 이미지들, 제 1 및 제 2 이미지들의 상대적인 정렬, 및 심 라인 위치를 포함하는 이미지 데이터의 일부 또는 전부는 최종 스티칭된 이미지의 완성 이후에 삭제될 수도 있다. 다른 실시형태들에서, 그러한 이미지 데이터의 일부 또는 전부는 사용자가 원래의 이미지들을 액세스 및 변경하게 하도록 유지될 수도 있다.
도 7 은 2 개의 이미지들을 함께 스티칭하기 위한 심 라인을 자동으로 결정하는 예시적인 프로세스 (700) 를 도시한다. 예시의 용이함을 위해, 프로세스 (700) 는 도 3 및 도 5 의 스티칭된 이미지 생성 모듈 (345) 에 의해 구현되는 것으로 논의된다. 다른 적합한 이미지 스티칭 시스템들이 다른 실시형태들에서 프로세스 (700) 를 구현할 수 있다.
프로세스 (700) 는 제 1 이미지 및 제 2 이미지의 이미지 데이터가 정렬 모듈 (505) 에 의해 수신되는 블록 (705) 에서 시작한다. 제 1 이미지는 그룹의 제 1 부분 및 제 1 배경을 포함한다. 제 2 이미지는 그룹의 제 2 부분 및 제 1 배경과 실질적으로 유사한 제 2 배경을 포함한다. 다른 실시형태들에서, 3 이상의 이미지들을 포함하는 이미지 데이터가 정렬 모듈 (505) 에 의해 수신될 수도 있고, 여기서 각각의 이미지는 그룹의 일부 및 다른 이미지들의 배경들과 실질적으로 유사한 배경을 포함한다.
프로세스 (700) 는 블록 (710) 으로 천이하고, 여기서 정렬 모듈 (505) 은 예컨대, 전술된 것과 같이, 픽셀 대 픽셀 비교에 의해 또는 특징 매칭을 통해 제 1 이미지와 제 2 이미지를 정렬한다. 다음으로, 프로세스 (700) 는 블록 (715) 으로 천이하고, 여기서 오버랩 결정 모듈 (510) 은 예컨대, 도 5 에 대하여 전술된 방법들 중 임의의 방법에 의해, 정렬된 이미지들의 오버랩 영역을 결정한다.
블록 (720) 에서, 심 생성기 (515) 는 심 라인 픽셀들의 위치들을 결정한다. 심 생성기 (515) 는 시작 픽셀에서 시작할 수도 있고, 시작 픽셀은 일부 실시형태들에서 오버랩하는 영역의 최상위 로우에서 최좌측 픽셀일 수도 있지만, 다른 실시형태들에서 오버랩하는 영역 내의 임의의 다른 픽셀일 수 있다. 그 후에, 심 생성기 (515) 는 시작 픽셀에 인접하는 픽셀들의 각각에 대하여 제 1 이미지와 제 2 이미지로부터의 픽셀 값들 간에 차이 값을 계산할 수도 있다. 최저 차이 값을 갖는 픽셀은 현재 심 라인 픽셀로서 세팅될 수도 있고, 그 심 라인은 현재 심 라인 픽셀의 방향으로 드로잉될 수도 있다. 일부 예시들에서, 심 생성기 (515) 는 현재 생성되고 있는 심 라인이 이미지 스티칭에 적합하지 않은 것을 결정할 수도 있고, 새로운 시작 픽셀에서 시작할 수도 있다. 이들 단계들은 심 라인이 완성될 때까지 반복될 수도 있다.
블록 (725) 에서, 심 에너지 계산기 (520) 는, 예컨대 일부 실시형태들에서 차이 값이 할당되지 않은 시작 픽셀을 제외하고, 각각의 심 라인 픽셀의 차이 값들을 합산함으로써, 블록 (720) 에서 심 생성기 (515) 에 의해 생성된 심 라인의 전체 에너지를 계산한다. 결정 블록 (730) 에서, 심 에너지 계산기 (520) 가 심 라인의 전체 에너지가 임계치 이상인 것으로 결정한다면, 프로세스 (700) 는 블록 (720) 으로 루프 백하고, 여기서 심 생성기 (515) 는 예컨대, 상이한 시작 픽셀로 시작하는 새로운 심 라인에 대하여 심 라인 픽셀들의 위치들을 결정한다. 결정 블록 (730) 에서, 심 에너지 계산기 (520) 가 심 라인의 전체 에너지가 임계치 미만인 것으로 결정한다면, 프로세스 (700) 는 블록 (735) 으로 계속된다. 임계치는 시각적으로 만족스러운 스티칭 결과들에 대응하는 N 개 픽셀들을 갖는 심 라인에 대하여 미리 결정된 에너지 레벨일 수도 있거나, 또는 일부 실시형태들에서 사용자에 의해 세팅된 임계치일 수 있다.
블록 (735) 에서, 이미지 스티칭 모듈 (525) 은 제 1 및 제 2 이미지들을 함께 스티칭하기 위해 심 라인 위치를 사용한다. 그 후에, 스티칭된 이미지는 이미지 크롭핑 모듈 (530) 에 의해 크롭핑된다. 최종 스티칭된 이미지는 저장되고 및/또는 사용자에게 디스플레이될 수도 있다. 일부 실시형태들에서, 제 1 및 제 2 이미지들, 제 1 및 제 2 이미지들의 상대적인 정렬, 및 심 라인 위치들을 포함하는 이미지 데이터의 일부 또는 전부는 최종 스티칭된 이미지의 완성 이후에 삭제될 수도 있다. 다른 실시형태들에서, 그러한 이미지 데이터의 일부 또는 전부는 사용자가 원래의 이미지들을 액세스 및 변경하게 하도록 유지될 수도 있다.
예시적인 심 라인 픽셀 선택 프로세스의 개관
도 8 은 일부 실시형태들에서, 도 7 의 블록 (725) 에서 심 라인 픽셀들을 선택하는데 사용될 수도 있는 예시적인 심 라인 픽셀 선택 프로세스 (800) 를 도시한다. 프로세스 (800) 는 블록 (805) 에서 시작하고, 여기서 심 생성기 (515) 는 시작 픽셀을 선택하며, 시작 픽셀은 일부 실시형태들에서 오버랩하는 영역의 최상위 로우에서 최좌측 픽셀일 수도 있지만, 다른 실시형태들에서 오버랩하는 영역 내의 임의의 다른 픽셀일 수 있다.
블록 (810) 에서, 심 라인 생성기 (515) 는 시작 픽셀에 인접한 각 픽셀에 대하여 차이 값들을 계산한다. 예를 들어, 차이 값들은 일 실시형태에서, 오버랩하는 영역에서 제 1 이미지의 각 픽셀의 구배 값들을 제 2 이미지에서 대응하는 픽셀의 구배 값들로부터 감산하거나, 또는 그 반대로 감산함으로써 계산될 수도 있다. 다른 실시형태들에서, 픽셀들의 휘도 또는 색차 값들이 구배 값들을 대신하거나, 또는 구배 값들에 부가하여 사용될 수도 있다. 2 개의 그레이스케일 이미지들을 함께 스티칭하는 실시형태들에서, 루마 값 및 구배 값 중 하나 또는 양자가 사용될 수도 있다. 2 개의 RGB 이미지들을 함께 스티칭하는 실시형태들에서, 휘도, 색차, 및 구배 값들의 일부 또는 전부가 사용될 수도 있다.
결정 블록 (815) 에서, 심 라인 생성기 (515) 는 인접하는 픽셀들 각각의 차이 값을 임계치에 비교한다. 임계치는 시각적으로 만족스러운 스티칭된 이미지 결과들을, 예컨대 오브젝트들을 커팅하지 않고 생성할 심 라인을 생성하는데 있어 픽셀들 간에 허용가능한 차이 레벨을 표시한다. 임계치 이상의 차이 값은 일부 실시형태들에서, 오브젝트 에지를 표시할 수 있다. 어떤 인접한 픽셀도 임계치 미만의 차이 값을 가지지 않는다면, 프로세스 (800) 는 새로운 시작 픽셀을 선택하기 위해 블록 (805) 으로 루프 백한다. 새로운 시작 픽셀은 일부 실시형태들에서 다음의 최상위 로우 픽셀일 수도 있거나, 일부 실시형태들에서 심 라인 생성기 (515) 는 새로운 시작 픽셀의 위치를 결정하기 위해, 심 라인이 수직으로 생성되고 있는지 또는 수평으로 생성되고 있는지의 여부에 의존하여, 이전 시작 픽셀의 위치를 정의하는 (x, y) 좌표 쌍에서의 X 또는 Y 값에 값을 부가할 수도 있다.
블록들 (908 내지 815) 의 반복들 이후에, 심 라인 생성기 (515) 가 오버랩하는 영역에서 시작 픽셀에 인접한 어떤 픽셀도 임계치 미만의 차이 값을 가지지 않는 것으로 결정한다면, 최저 에너지 경로 결정 프로세스는 사용자에게 제 1 이미지 및 제 2 이미지가 충분한 유사성들을 포함하지 않는 것을 표시할 수도 있고, 사용자에게는 임계치를 조정하거나 스티칭용의 새로운 이미지들을 캡처하기 위한 선택가능한 옵션이 제시될 수도 있다.
적어도 하나의 인접하는 픽셀이 임계치 미만의 값을 갖는다면, 프로세스 (800) 는 블록 (820) 으로 천이하고, 여기서 심 라인 생성기 (515) 는 인접하는 픽셀을 현재 심 라인 픽셀로서 세팅한다. 일부 예시들에서, 다수의 인접하는 픽셀들은 임계치 미만의 차이 값들을 가질 수도 있다. 일 실시형태에서, 최저 차이 값을 갖는 픽셀은 현재 심 라인 픽셀로서 세팅될 수도 있다. 다른 실시형태에서, 심 라인 생성기 (515) 는 심 라인이 드로잉되고 있는 방향, 즉 상부 오버랩 에지로부터 하부 오버랩 에지로의 방향을 결정할 수도 있고, 심 라인을 정확한 방향으로 진행시키는 임계치 미만의 차이 값을 갖는 인접 픽셀이 선택될 수 있다. 일부 실시형태들에서, 에지 맵은 오버랩 영역에 대하여 결정될 수도 있고, 인접하는 픽셀들은 식별된 에지들로부터 임계 거리를 유지하도록 선택될 수도 있다. 선택된 인접하는 픽셀들은 현재 심 라인 픽셀로서 세팅된다.
블록 (825) 에서, 심 라인 생성기 (515) 는 현재 심 라인 픽셀의 위치를 심 라인 픽셀 위치 데이터의 세트에 추가한다. 심 라인 픽셀 위치 데이터는 시작 픽셀과 각각의 선택된 심 라인 픽셀의 위치, 예컨대 이미지들의 오버랩 영역으로 정의된 좌표 프레임을 갖는 (x, y) 좌표를 포함한다. 심 라인 픽셀 위치 데이터는 심 라인을 구성하는 것뿐만 아니라 이미지 스티칭 동안 이미지들 간의 경계를 정의하는데 사용될 수도 있다.
결정 블록 (830) 에서, 심 라인 생성기 (515) 는 심 라인이 완료인지 여부를 결정하기 위해 현재 심 라인 픽셀의 위치를 사용한다. 예를 들어, 심 라인 생성기 (515) 는 현재 심 라인 픽셀이 시작하는 심 라인 픽셀에 대향하는 에지를 따라 위치되는 것을 표시하는 위치 데이터에 기초하여, 심 라인이 완료된 것으로 결정할 수도 있다. 예시를 위해, 최상위 로우에서의 시작 픽셀에서 심 라인을 드로잉하기 시작하는 실시형태들에서, 최종 로우는 최하위 로우일 수도 있다. 심 라인은 일부 실시형태들에서, 좌측으로부터 우측으로 또는 그 반대로 드로잉될 수 있다. 일부 실시형태들에서, 심 라인이 에지 로우에서 종료한다면, 프로세스는 그 심 라인이 미완료된 최종 스티칭된 이미지에 대해 대비할 수도 있거나 새로운 시작 픽셀로 다시 시작할 수도 있는 것의 표시와 함께, 그 심 라인을 사용자에게 제시할 수도 있다.
심 라인 생성기 (515) 가 블록 (830) 에서 그 심 라인이 완료되지 않은 것으로 결정한다면, 프로세스 (800) 는 심 라인 생성기 (515) 가 시작 픽셀에 인접한 픽셀들에 대한 차이 값들을 계산한 블록 (810) 과 유사하게, 현재 심 라인 픽셀에 인접하는 각 픽셀에 대한 차이 값들을 계산하기 위해 블록 (840) 으로 천이한다. 블록 (845) 에서, 현재 심 라인 픽셀에 인접하는 픽셀들에 대한 차이 값들은, 블록 (815) 에서 수행된 비교와 유사하게, 임계치에 비교된다. 어떤 차이 값도 임계치 미만이 아니라면, 프로세스 (800) 는 새로운 시작 픽셀을 선택하기 위해 블록 (805) 으로 루프 백한다. 임계치 미만의 값을 갖는 적어도 하나의 인접하는 픽셀이 존재한다면, 프로세스 (800) 는 임계치 미만의 차이 값을 갖는 인접 픽셀들 중 하나를 다음의 현재 심 라인 픽셀로서 선택하기 위해 블록 (85) 으로 천이한다.
결정 블록 (855) 에서, 심 라인 생성기 (515) 는 현재 선택된 심 라인 픽셀이 그 심 라인에 이전에 포함되었는지의 여부를 결정하기 위해, 현재 심 라인 픽셀의 위치를 심 라인 픽셀 위치 데이터에서의 위치들에 비교한다. 이는 유리하게 심 라인 생성 프로세스 (800) 가 심 라인에 대한 원호 경로 (circular path) 를 계속해서 결정하는 무한 루프에 갇히는 것을 방지한다. 현재 심 라인 픽셀 위치가 이전 심 라인 픽셀 위치 데이터 내의 임의의 엔트리와 매칭한다면, 그 심 라인은 원상 복귀하고, 프로세스는 계속될 경우, 무한 루프에 갇힐 수도 있다. 따라서, 현재 심 라인 픽셀 위치가 이전 심 라인 픽셀 위치 데이터 내의 임의의 엔트리와 매칭한다면, 프로세스 (800) 는 새로운 시작 픽셀을 선택하고 다시 시작하기 위해 블록 (805) 으로 루프 백할 수도 있다.
일부 실시형태들에서, 업데이트된 현재 심 라인 픽셀이 심 라인 픽셀 위치 데이터에 포함될 경우 새로운 시작 픽셀을 선택하기 위해 블록 (805) 으로 루프 백하는 것보다, 프로세스 (800) 는 현재 심 라인 픽셀을 업데이트하기 위해 블록 (850) 으로 루프 백할 수도 있고, 상이한 인접 픽셀의 차이 값이 임계치 미만이라면 상이한 인접 픽셀을 선택할 수도 있다. 임계치 미만의 차이 값을 가지는 모든 인접 픽셀들이 심 라인 픽셀 위치 데이터에 대하여 테스트되고, 포함되는 것으로 발견된다면, 임계치가 상승될 수도 있거나 또는 프로세스 (400) 는 블록 (805) 으로 루프 백하고 새로운 시작 픽셀을 선택할 수도 있다. 일부 실시형태들에서, 프로세스 (800) 는 인접 픽셀을 현재 심 라인 픽셀로서 선택하기 전에 블록 (855) 에서 심 라인 픽셀 위치 데이터에 대하여 각 인접 픽셀을 테스트할 수도 있다. 일부 실시형태들에서, 인접 픽셀들은, 예컨대 상부로부터 하부로 및 좌측으로부터 우측으로 순차적으로 테스트될 수도 있고, 제 1 테스트된 인접 픽셀이 도달되자마자, 프로세스 (800) 는 모든 인접 픽셀들이 심 라인 픽셀 위치 데이터에 이미 포함된 경우, 단계 (805) 로 루프 백할 수도 있다.
결정 블록 (855) 에서, 심 라인 생성기 (515) 가 현재 심 라인 픽셀의 위치가 기존의 심 라인 위치 데이터에 존재하지 않는 것으로 결정한다면, 프로세스 (800) 는 블록 (825) 으로 천이하고, 여기서 심 라인 생성기 (515) 는 현재 심 라인 픽셀의 위치를 심 라인 픽셀 위치 데이터의 세트에 부가한다. 프로세스 (800) 는 다시 블록 (830) 으로 천이하여 심 라인이 완료인지 여부를 결정한다. 심 라인 생성기 (515) 가 블록 (830) 에서 그 심 라인이 완료된 것으로 결정한다면, 프로세스 (800) 는 사용자에게로의 프리젠테이션을 위해 또는 이미지 스티칭에서의 사용을 위해 심 라인 픽셀 위치 데이터를 완료된 심 라인으로서 출력하거나 저장하기 위해 블록 (835) 으로 천이한다.
도시되지는 않았지만, 일부 실시형태들에서, 프로세스 (800) 는 계속될 수도 있고, 심 에너지 계산기 (520) 가 예컨대, 각각의 심 라인 픽셀의 차이 값들을 합산함으로써, 완료된 심 라인의 전체 에너지 레벨을 계산한다. 심 라인의 전체 에너지 레벨은 이미지 스티칭에서의 사용 이전에 또는 사용자에게로의 프리젠테이션 이전에 임계치와 비교될 수도 있다. 완료된 심 라인의 전체 에너지는 최종 스티칭된 이미지의 가능한 품질의 표시를 사용자에게 생성하거나, 또는 새로운 심 라인이 생성되어야 한다고 자동 프로세스 (800) 에 표시하는데 사용될 수도 있다. 일부 실시형태들에서, 복수의 저 에너지 심 라인 옵션들은 최저 에너지 심 라인을 결정하기 위해 생성되고 비교될 수도 있으며, 각각의 저 에너지 심 라인 옵션은 임계치 미만의 전체 에너지 레벨을 갖는다.
추가의 실시형태들
제 1 이미지 및 제 2 이미지의 맥락에서 주로 논의되었지만, 본원에 기술된 이미지 스티칭 프로세스들 및 최저 에너지 심 라인 결정 프로세스들은 3 이상의 이미지들을 수용할 수도 있다. 예를 들어, 다수의 저 에너지 심 라인들이 다수의 이미지들을 함께 스위칭하기 위해 결정될 수 있다. 결정된 심 라인들의 수는 이미지들의 수에서 1 을 뺀 것일 수도 있다. 3 이상의 이미지들의 각각은, 일부 실시형태들에서, 전경 및 배경으로 세그먼트화될 수도 있고, 3 이상의 전경들이 공통 배경 위에 스티칭될 수도 있다.
부가적으로, 전술된 시스템들 및 프로세스들은 일부 실시형태들에서, 스틸 이미지들에 부가하여 비디오 이미지들을 생성하는데 사용될 수 있다. 추가로, 앞의 설명은 일반적으로 사람들의 그룹의 스티칭된 이미지를 생성하는 것을 논의하지만, 이는 오직 예시의 목적들을 위한 것이며, 그러한 프로세스들은 또한 다른 사진 컨텐츠의 스티칭된 이미지들을 생성하는데 유리할 수도 있다. 예를 들어, 개시된 시스템들 및 방법들은 배경 위에 움직이는 사람 또는 오브젝트의 액션 샷들의 시퀀스를 함께 스티칭하는데 사용될 수 있다.
본원에 기술된 것과 같은 이미지 스티칭 프로세스들은 이미지 캡처 디바이스의 뷰 파인더, 이미지 캡처 디바이스와 통신하는 분리별개의 디스플레이, 또는 이미지 캡처 디바이스에 의해 캡처된 이미지 데이터를 수신하는 컴퓨팅 디바이스의 디스플레이를 사용하여 구현될 수도 있다. 따라서, 이미지 캡처 디바이스, 이미지 편집 능력들을 갖는 다른 컴퓨팅 디바이스, 또는 이들의 조합은 본원에 기술된 이미지 스티칭 프로세스들을 실행할 수도 있다.
용어
당업자는 본 명세서에 개시된 구현들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 프로세스 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들 양자의 조합들로서 구현될 수도 있음을 추가로 인식할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 상술되었다. 그러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지의 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자라면, 상기 상술한 기능을 각각의 특정 어플리케이션에 대해 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나게 하는 것으로 이해되어서는 안 된다. 당업자는 일부분 또는 부분이 전체보다 작거나 같은 어떤 것을 포함할 수도 있음을 인식할 것이다. 예를 들어, 픽셀들의 집합의 일부분은 그 픽셀들의 부분 집합으로 지칭할 수도 있다.
본원에서 개시된 구현들과 연계하여 설명된 여러가지 예시적인 논리 블록들, 모듈들, 및 회로들은 본원에서 개시된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합에 의해 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 연계한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다.
본원에서 개시된 구현들과 연계하여 설명된 방법 또는 프로세스의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양자의 조합에서 직접적으로 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시적인 컴퓨터 판독가능 저장 매체는 프로세서에 커플링되어, 그 프로세서가 컴퓨터 판독가능 저장 매체로부터 정보를 판독하거나 컴퓨터 판독가능 저장 매체에 정보를 기록할 수 있다. 대안에서, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC 에 상주할 수도 있다. ASIC 는 사용자 단말, 카메라, 또는 다른 디바이스 내에 상주할 수도 있다. 대안에서, 프로세서와 저장 매체는 사용자 단말, 카메라, 또는 다른 디바이스에서 개별 컴포넌트들로 상주할 수도 있다.
제목들은 참조를 위해 본원에 포함되고 다양한 섹션들을 위치를 찾는 것을 돕고자 한다. 이러한 제목들은 그와 관련하여 설명된 개념들의 범위를 제한하고자 하지 않는다. 이러한 개념들은 전체 명세서에 걸쳐 적용가능할 수도 있다.
개시된 구현들의 상기 설명들은 임의의 당업자가 본 발명을 실시하거나 이용하는 것을 가능하게 하도록 하기 위해 제공된다. 이러한 구현들에 대한 다양한 변형예들이 당업자에게는 자명할 것이고, 본원에서 정의된 일반적인 원칙들은 본 발명의 취지와 범위를 벗어나지 않으면서 다른 구현들에 적용될 수도 있다. 따라서, 본 발명은 본원에서 보여진 예시적인 구현들로 제한되도록 의도된 것은 아니며 본원의 개시된 원칙들과 신규의 특징들과 일치하는 최광의 범위를 제공하기 위한 것이다.

Claims (30)

  1. 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법으로서,
    상기 그룹의 제 1 부분의 제 1 이미지를 캡처하는 단계;
    상기 전자 디바이스의 디스플레이 상에 제 2 이미지의 라이브 프리뷰를 생성하는 단계로서, 상기 제 2 이미지는 상기 그룹의 제 2 부분을 포함하는, 상기 라이브 프리뷰를 생성하는 단계;
    상기 제 1 이미지의 적어도 일부를 상기 제 2 이미지의 상기 라이브 프리뷰 상에 중첩하는 단계;
    상기 그룹의 상기 제 2 부분의 상기 제 2 이미지를 캡처하는 단계;
    상기 제 1 이미지 및 상기 제 2 이미지의 상기 라이브 프리뷰와 상기 제 2 이미지 중 하나의 상대적인 포지셔닝에 관한 사용자 입력을 수신하는 단계; 및
    상기 사용자 입력에 적어도 부분적으로 기초하여 상기 제 1 이미지 및 상기 제 2 이미지를 최종 스티칭된 이미지로 스티칭하는 단계로서, 상기 최종 이미지는 상기 그룹의 상기 제 1 부분과 상기 그룹의 상기 제 2 부분을 포함하는, 상기 최종 스티칭된 이미지로 스티칭하는 단계를 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  2. 제 1 항에 있어서,
    상기 제 1 이미지의 적어도 일부를 상기 제 2 이미지의 상기 라이브 프리뷰 상에 중첩하는 단계는 투명도 레벨을 상기 제 1 이미지에 할당하는 단계를 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  3. 제 1 항에 있어서,
    상기 제 1 이미지의 적어도 일부를 상기 제 2 이미지의 상기 라이브 프리뷰 상에 중첩하는 단계는,
    투명도 레벨을 상기 제 2 이미지에 할당하는 단계;
    상기 제 2 이미지를 전경 포지션에 할당하는 단계; 및
    상기 제 1 이미지를 배경 포지션에 할당하는 단계를 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  4. 제 1 항에 있어서,
    상기 전자 디바이스의 상기 디스플레이는 터치 감응식 디스플레이 스크린을 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  5. 제 4 항에 있어서,
    상기 사용자 입력은 상기 제 2 이미지의 상기 라이브 프리뷰 위에 중첩된 상기 제 1 이미지의 상기 적어도 일부를, 상기 제 2 이미지의 상기 라이브 프리뷰에 대하여 새로운 위치로 드래그하는 것을 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  6. 제 1 항에 있어서,
    상기 최종 스티칭된 이미지의 프리뷰를 사용자에게 제시하는 단계를 더 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  7. 제 6 항에 있어서,
    상기 제 1 이미지 및 상기 제 2 이미지의 상대적인 포지셔닝에 관한 업데이트된 사용자 입력을 수신하는 단계; 및
    상기 업데이트된 사용자 입력에 적어도 부분적으로 기초하여 상기 제 1 이미지 및 상기 제 2 이미지를 스티칭하는 단계를 더 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  8. 제 1 항에 있어서,
    상기 스티칭하는 단계는 복수의 심 라인들 및 상기 복수의 심 라인들의 각각에 대응하는 에너지 레벨을 평가하는 단계, 및 최저 에너지 레벨을 갖는 심 라인을 선택하는 단계를 포함하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  9. 제 1 항에 있어서,
    심 라인의 위치에 관한 사용자 입력을 수신하는 단계를 더 포함하며, 상기 심 라인은 상기 제 1 이미지를 상기 제 2 이미지로 스티칭하기 위한 경계를 결정하는, 개인들의 그룹의 이미지를 캡처하는 전자 디바이스에서의 방법.
  10. 이미지 캡처 디바이스로서,
    개인들의 그룹의 제 1 부분의 제 1 이미지 및 상기 그룹의 제 2 부분의 제 2 이미지를 캡처하도록 구성된 이미지 센서;
    상기 제 2 이미지의 라이브 프리뷰를 디스플레이하도록 구성되고, 상기 제 2 이미지의 상기 라이브 프리뷰 위에 중첩된 상기 제 1 이미지의 적어도 일부를 디스플레이하도록 추가로 구성된 디스플레이;
    상기 제 2 이미지의 상기 라이브 프리뷰와 상기 제 1 이미지의 상기 적어도 일부의 상대적인 포지셔닝에 관한 사용자 입력을 수신하도록 구성된 사용자 입력 모듈; 및
    상기 사용자 입력에 적어도 부분적으로 기초하여 상기 제 1 이미지 및 상기 제 2 이미지를 최종 이미지로 스티칭하도록 구성된 이미지 스티칭 모듈로서, 상기 최종 이미지는 상기 그룹의 상기 제 1 부분과 상기 그룹의 상기 제 2 부분을 포함하는, 상기 이미지 스티칭 모듈을 포함하는, 이미지 캡처 디바이스.
  11. 제 10 항에 있어서,
    상기 디스플레이는 추가로, 상기 제 1 이미지의 라이브 프리뷰 위에 상기 그룹의 상기 제 2 부분에 대하여 예비된 공간의 표시를 디스플레이하도록 구성되는, 이미지 캡처 디바이스.
  12. 제 10 항에 있어서,
    상기 디스플레이는 터치 감응식 디스플레이인, 이미지 캡처 디바이스.
  13. 제 12 항에 있어서,
    사용자 인터페이스를 더 포함하며,
    상기 사용자 인터페이스는 상기 터치 감응식 디스플레이를 포함하는, 이미지 캡처 디바이스.
  14. 제 10 항에 있어서,
    상기 디스플레이는 추가로, 상기 제 1 이미지와 상기 제 2 이미지를 스티칭하기 전에 상기 최종 이미지의 프리뷰를 디스플레이하도록 구성되는, 이미지 캡처 디바이스.
  15. 제 10 항에 있어서,
    상기 제 1 이미지, 상기 제 2 이미지의 상기 라이브 프리뷰, 및 상기 제 2 이미지의 상기 디스플레이 상으로의 프리젠테이션을 관리하도록 구성된 사용자 인터페이스 제어 모듈을 더 포함하는, 이미지 캡처 디바이스.
  16. 제 15 항에 있어서,
    상기 사용자 인터페이스 제어 모듈은 상기 제 1 이미지 및 상기 제 2 이미지의 상기 라이브 프리뷰 중 하나에 투명도 레벨을 할당하도록 구성된 투명도 모듈을 더 포함하는, 이미지 캡처 디바이스.
  17. 제 10 항에 있어서,
    상기 제 1 이미지와 상기 제 2 이미지의 오버랩하는 영역에 저 에너지 심 라인을 위치시키도록 구성되는 심 라인 생성 모듈을 더 포함하는, 이미지 캡처 디바이스.
  18. 저 에너지 심 라인을 결정하는 방법으로서,
    특정 실행가능한 명령들로 구성된 하나 이상의 컴퓨팅 디바이스들에 의해 구현될 경우,
    제 1 이미지 및 제 2 이미지를 포함하는 이미지 데이터를 수신하는 단계;
    상기 제 1 이미지 및 상기 제 2 이미지의 오버랩하는 영역을 결정하는 단계로서, 상기 오버랩하는 영역은 복수의 픽셀들을 포함하는, 상기 오버랩하는 영역을 결정하는 단계;
    복수의 인접 픽셀들에 인접하는 시작 픽셀을 선택하는 단계;
    상기 복수의 인접 픽셀들의 각각에 대하여 차이 값을 계산하는 단계로서, 상기 차이 값은 인접 픽셀의 픽셀 값을 상기 시작 픽셀의 픽셀 값과 비교함으로써 계산되는, 상기 차이 값을 계산하는 단계;
    상기 복수의 인접 픽셀들 중 하나를 현재 심 라인 픽셀로서 선택하는 단계; 및
    상기 시작 픽셀의 제 1 위치 데이터 및 상기 현재 심 라인 픽셀의 제 2 위치 데이터를 포함하는 심 라인 픽셀 위치 데이터를 구성하는 단계를 포함하는, 저 에너지 심 라인을 결정하는 방법.
  19. 제 18 항에 있어서,
    상기 오버랩하는 영역을 결정하는 단계는 상기 제 1 이미지와 상기 제 2 이미지를 정렬하는 단계를 포함하는, 저 에너지 심 라인을 결정하는 방법.
  20. 제 18 항에 있어서,
    상기 오버랩하는 영역을 결정하는 단계는 상기 제 1 이미지와 상기 제 2 이미지의 상대적인 포지셔닝에 관한 사용자 입력을 수신하는 단계를 포함하는, 저 에너지 심 라인을 결정하는 방법.
  21. 제 18 항에 있어서,
    상기 복수의 인접 픽셀들 중 하나를 현재 심 라인 픽셀로서 선택하는 단계는 최저 차이 값을 갖는 인접 픽셀을 선택하는 단계를 포함하는, 저 에너지 심 라인을 결정하는 방법.
  22. 제 18 항에 있어서,
    상기 복수의 인접 픽셀들 중 하나를 현재 심 라인 픽셀로서 선택하는 단계는 상기 복수의 인접 픽셀들의 각각에 대한 상기 차이 값을 임계치와 비교하는 단계를 포함하는, 저 에너지 심 라인을 결정하는 방법.
  23. 제 22 항에 있어서,
    픽셀 값은 루마, 휘도, 색차, 또는 구배 중 적어도 하나인, 저 에너지 심 라인을 결정하는 방법.
  24. 제 18 항에 있어서,
    상기 현재 심 라인 픽셀에 인접하는 복수의 픽셀들의 각각에 대하여 차이 값을 계산하는 단계; 및
    상기 현재 심 라인 픽셀에 인접하는 상기 복수의 픽셀들 중 하나를 업데이트된 현재 심 라인 픽셀로서 선택하는 단계를 더 포함하는, 저 에너지 심 라인을 결정하는 방법.
  25. 제 24 항에 있어서,
    상기 업데이트된 현재 심 라인 픽셀의 위치가 상기 심 라인 픽셀 위치 데이터에 포함되지 않는 것으로 결정하는 단계를 더 포함하는, 저 에너지 심 라인을 결정하는 방법.
  26. 제 25 항에 있어서,
    상기 업데이트된 현재 심 라인 픽셀 위치의 제 3 위치 데이터를 포함하도록 상기 심 라인 픽셀 위치 데이터를 업데이트하는 단계를 더 포함하는, 저 에너지 심 라인을 결정하는 방법.
  27. 제 18 항에 있어서,
    상기 오버랩하는 영역 내에 복수의 저 에너지 심 라인들을 생성하는 단계; 및
    상기 제 1 이미지를 상기 제 2 이미지로 스티칭하기 위해 사용할 상기 복수의 저 에너지 심 라인들 중 하나의 선택에 관한 사용자 입력을 수신하는 단계를 더 포함하는, 저 에너지 심 라인을 결정하는 방법.
  28. 심 라인 생성 시스템으로서,
    제 1 이미지와 제 2 이미지의 오버랩하는 영역을 결정하도록 구성된 오버랩 결정 모듈;
    상기 오버랩하는 영역 내에 저 에너지 심 라인을 생성하도록 구성된 심 생성기로서, 상기 저 에너지 심 라인은 상기 제 1 이미지를 상기 제 2 이미지로 스티칭하기 위한 경계를 나타내는, 상기 심 생성기; 및
    상기 심 라인의 전체 에너지 레벨을 계산하도록 구성된 심 에너지 계산기를 포함하는, 심 라인 생성 시스템.
  29. 제 28 항에 있어서,
    상기 저 에너지 심 라인을 사용하여 상기 제 1 이미지를 상기 제 2 이미지로 스티칭하도록 구성된 이미지 스티칭 모듈을 더 포함하는, 심 라인 생성 시스템.
  30. 제 28 항에 있어서,
    상기 제 1 이미지와 상기 제 2 이미지를 정렬하도록 구성된 정렬 모듈을 더 포함하는, 심 라인 생성 시스템.
KR1020167007713A 2013-09-06 2014-09-03 인터랙티브 이미지 합성 KR101923788B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361874950P 2013-09-06 2013-09-06
US61/874,950 2013-09-06
US14/079,845 2013-11-14
US14/079,845 US9185284B2 (en) 2013-09-06 2013-11-14 Interactive image composition
PCT/US2014/053880 WO2015034908A2 (en) 2013-09-06 2014-09-03 Interactive image composition

Publications (2)

Publication Number Publication Date
KR20160051803A true KR20160051803A (ko) 2016-05-11
KR101923788B1 KR101923788B1 (ko) 2018-11-29

Family

ID=52625237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167007713A KR101923788B1 (ko) 2013-09-06 2014-09-03 인터랙티브 이미지 합성

Country Status (6)

Country Link
US (1) US9185284B2 (ko)
EP (1) EP3042356B1 (ko)
JP (1) JP6316968B2 (ko)
KR (1) KR101923788B1 (ko)
CN (1) CN105493139B (ko)
WO (1) WO2015034908A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180036408A (ko) * 2016-09-30 2018-04-09 삼성전자주식회사 이미지 처리 장치 및 이미지 처리 장치의 제어 방법

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101785997B1 (ko) * 2009-10-30 2017-10-17 주식회사 골드피크이노베이션즈 무선통신 시스템에서 요소 반송파 집합 정보 전송방법 및 그 기지국, 단말의 수신방법
EP3008687A4 (en) * 2013-06-14 2017-03-01 Nokia Technologies OY Method, apparatus and computer program product for alignment of images
KR102138521B1 (ko) * 2013-12-12 2020-07-28 엘지전자 주식회사 이동단말기 및 그 제어방법
TWI533675B (zh) * 2013-12-16 2016-05-11 國立交通大學 影像接合之最佳動態接縫找尋調整系統與方法
JP2015186170A (ja) * 2014-03-26 2015-10-22 ソニー株式会社 画像処理装置および画像処理方法
JP6590476B2 (ja) * 2014-10-28 2019-10-16 キヤノン株式会社 画像表示装置
JP6354619B2 (ja) * 2015-02-27 2018-07-11 ブラザー工業株式会社 画像処理装置、および、コンピュータプログラム
US10582125B1 (en) * 2015-06-01 2020-03-03 Amazon Technologies, Inc. Panoramic image generation from video
US9973711B2 (en) * 2015-06-29 2018-05-15 Amazon Technologies, Inc. Content-based zooming and panning for video curation
US10269155B1 (en) * 2015-06-29 2019-04-23 Amazon Technologies, Inc. Image artifact masking
KR20180059803A (ko) * 2015-09-02 2018-06-05 텀브롤 엘엘씨 이미지를 정렬하고 일련의 정렬된 이미지를 제공하는 카메라 시스템 및 방법
US10044944B2 (en) * 2015-09-28 2018-08-07 Gopro, Inc. Automatic composition of video with dynamic background and composite frames selected based on foreground object criteria
CN108027967B (zh) * 2015-11-05 2020-09-29 华为技术有限公司 图像拼接的方法和电子设备
CN105657247A (zh) * 2015-11-20 2016-06-08 乐视移动智能信息技术(北京)有限公司 一种电子设备的二次曝光拍照方法和装置
KR101751039B1 (ko) * 2016-02-17 2017-06-26 네이버 주식회사 영상 표시 장치, 방법, 및 컴퓨터 프로그램
SE1630035A1 (en) * 2016-02-26 2017-08-27 Katam Tech Ab Methods, devices and computer programs for positioning
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
US10325390B2 (en) * 2016-03-31 2019-06-18 Qualcomm Incorporated Geometric work scheduling with dynamic and probabilistic work trimming
US20180063426A1 (en) * 2016-08-31 2018-03-01 Nokia Technologies Oy Method, apparatus and computer program product for indicating a seam of an image in a corresponding area of a scene
CN106408573A (zh) * 2016-08-31 2017-02-15 诸暨微因生物科技有限公司 一种全切片数字病理图像处理分析方法
JP6580013B2 (ja) * 2016-09-29 2019-09-25 株式会社日立製作所 画像処理装置、及びその方法
KR20180039529A (ko) * 2016-10-10 2018-04-18 엘지전자 주식회사 이동 단말기 및 그의 동작 방법
US11042984B2 (en) * 2016-11-10 2021-06-22 Movea Systems and methods for providing image depth information
CN106780302A (zh) * 2016-11-30 2017-05-31 上海仙剑文化传媒股份有限公司 一种数字图像自动拼版方法及装置
EP3340611B1 (en) * 2016-12-20 2020-07-29 Nokia Technologies Oy An apparatus and associated methods for virtual reality scene capture
CN108573469A (zh) * 2017-03-07 2018-09-25 富士通株式会社 图像处理装置和方法
JPWO2019026746A1 (ja) * 2017-08-02 2020-08-20 ソニー株式会社 画像処理装置および方法、撮像装置、並びにプログラム
JP7210188B2 (ja) * 2017-08-31 2023-01-23 キヤノン株式会社 情報処理システム、制御装置及び情報処理方法
CN107730452B (zh) * 2017-10-31 2021-06-04 北京小米移动软件有限公司 图像拼接方法及装置
EP3506619A1 (en) * 2017-12-27 2019-07-03 Nokia Technologies Oy Receiving and displaying sensor data on a substantially spherical surface of a display device
CN108447067A (zh) * 2018-03-19 2018-08-24 哈尔滨工业大学 一种基于能量缝剪裁和ransac拟合的可见光图像海天线检测方法
JP6664082B2 (ja) * 2018-03-27 2020-03-13 パナソニックIpマネジメント株式会社 画像処理システム、画像処理装置および画像処理方法
WO2020162264A1 (ja) * 2019-02-07 2020-08-13 富士フイルム株式会社 撮影システム、撮影箇所設定装置、撮影装置及び撮影方法
US11030730B2 (en) 2019-04-02 2021-06-08 Shutterfly, Llc Composite group image
US11688048B2 (en) * 2019-04-03 2023-06-27 Digital Check Corp. Image stitching from multiple line scanners
US11178342B2 (en) * 2019-07-18 2021-11-16 Apple Inc. Camera systems for bendable electronic devices
CN110611768B (zh) 2019-09-27 2021-06-29 北京小米移动软件有限公司 多重曝光摄影方法及装置
JP7413041B2 (ja) * 2020-01-23 2024-01-15 キヤノン株式会社 撮像制御装置、撮像制御方法、プログラム、及び記録媒体
CN111833247A (zh) * 2020-06-11 2020-10-27 维沃移动通信有限公司 图片处理方法、装置及电子设备
CN112200727B (zh) * 2020-11-06 2023-11-21 星宸科技股份有限公司 图像缝合装置、图像处理芯片、及图像缝合方法
KR102405428B1 (ko) * 2020-12-29 2022-06-03 서울과학기술대학교 산학협력단 이미지 스티칭 방법 및 장치
US11729521B2 (en) * 2021-03-08 2023-08-15 GM Global Technology Operations LLC Systems and methods for extended field of view and low light imaging
CN116366977A (zh) * 2023-05-19 2023-06-30 杭州未名信科科技有限公司 一种基于光学增稳的塔机云台全景图像防抖动方法和系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5376098A (en) 1996-12-06 1998-06-29 Flashpoint Technology, Inc. A method and system for assisting in the manual capture of overlapping images for composite image generation in digital camera
US7620909B2 (en) 1999-05-12 2009-11-17 Imove Inc. Interactive image seamer for panoramic images
US6771304B1 (en) * 1999-12-31 2004-08-03 Stmicroelectronics, Inc. Perspective correction device for panoramic digital camera
US7221395B2 (en) * 2000-03-14 2007-05-22 Fuji Photo Film Co., Ltd. Digital camera and method for compositing images
JP2002171398A (ja) * 2000-12-04 2002-06-14 Konica Corp 画像処理方法及び電子カメラ
JP3630147B2 (ja) 2002-05-14 2005-03-16 カシオ計算機株式会社 被写体の撮影方法及びカメラ装置
WO2004015987A1 (ja) * 2002-08-09 2004-02-19 Sharp Kabushiki Kaisha 画像合成装置、画像合成方法、画像合成プログラム、および画像合成プログラムを記録した記録媒体
JP4309740B2 (ja) * 2003-10-22 2009-08-05 パイオニア株式会社 撮影装置および撮影方法
US20050129324A1 (en) * 2003-12-02 2005-06-16 Lemke Alan P. Digital camera and method providing selective removal and addition of an imaged object
US7656429B2 (en) 2004-02-04 2010-02-02 Hewlett-Packard Development Company, L.P. Digital camera and method for in creating still panoramas and composite photographs
US7646400B2 (en) 2005-02-11 2010-01-12 Creative Technology Ltd Method and apparatus for forming a panoramic image
US20070081081A1 (en) 2005-10-07 2007-04-12 Cheng Brett A Automated multi-frame image capture for panorama stitching using motion sensor
US8275215B2 (en) * 2007-05-08 2012-09-25 Arcsoft (Shanghai) Technology Company, Ltd Merging images
US8717412B2 (en) 2007-07-18 2014-05-06 Samsung Electronics Co., Ltd. Panoramic image production
EP2018049B1 (en) * 2007-07-18 2013-05-01 Samsung Electronics Co., Ltd. Method of assembling a panoramic image and camera therefor
JP5144237B2 (ja) 2007-12-05 2013-02-13 キヤノン株式会社 画像処理装置、その制御方法、プログラム
JP4760947B2 (ja) * 2008-08-05 2011-08-31 カシオ計算機株式会社 画像処理装置、プログラム
JP2010263269A (ja) * 2009-04-30 2010-11-18 Sanyo Electric Co Ltd 撮像装置
US8659622B2 (en) 2009-08-31 2014-02-25 Adobe Systems Incorporated Systems and methods for creating and editing seam carving masks
KR20110050834A (ko) 2009-11-09 2011-05-17 삼성전자주식회사 휴대용 단말기에서 영상 정합 방법 및 장치
US8780230B2 (en) * 2011-02-25 2014-07-15 Candid Color Systems, Inc. Faux group image and method
JP5921080B2 (ja) 2011-04-28 2016-05-24 キヤノン株式会社 撮像装置及びその制御方法
JP2012249175A (ja) 2011-05-30 2012-12-13 Olympus Imaging Corp 撮像装置、表示方法およびプログラム
US8902335B2 (en) * 2012-06-06 2014-12-02 Apple Inc. Image blending operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180036408A (ko) * 2016-09-30 2018-04-09 삼성전자주식회사 이미지 처리 장치 및 이미지 처리 장치의 제어 방법

Also Published As

Publication number Publication date
JP2016530831A (ja) 2016-09-29
KR101923788B1 (ko) 2018-11-29
EP3042356B1 (en) 2018-01-31
US9185284B2 (en) 2015-11-10
WO2015034908A2 (en) 2015-03-12
WO2015034908A3 (en) 2015-04-23
CN105493139B (zh) 2018-11-23
JP6316968B2 (ja) 2018-04-25
US20150070523A1 (en) 2015-03-12
CN105493139A (zh) 2016-04-13
EP3042356A2 (en) 2016-07-13

Similar Documents

Publication Publication Date Title
KR101923788B1 (ko) 인터랙티브 이미지 합성
US11798130B2 (en) User feedback for real-time checking and improving quality of scanned image
JP6730690B2 (ja) シーン内に存在する不要なオブジェクトの除去に基づくシーンの画像の動的生成
KR102045957B1 (ko) 휴대단말의 촬영 방법 및 장치
US9516214B2 (en) Information processing device and information processing method
KR101458645B1 (ko) 파노라믹 이미지를 조합하는 방법, 파노라믹 이미지의버추얼 3d 프로젝션을 제공하는 방법 및 이를 위한 카메라
US9191649B2 (en) Systems and methods to capture a stereoscopic image pair
CN113395419A (zh) 电子设备、控制方法和计算机可读介质
CN103209291A (zh) 一种用于控制自动拍摄图像的方法、装置和设备
US20150222810A1 (en) Image processing apparatus and image processing method
EP1870854A2 (en) Apparatus and method for panoramic photography in portable terminal
KR20130112574A (ko) 확대된 영상의 화질을 개선하기 위한 장치 및 방법
WO2013175051A1 (en) Method and apparatus for producing a cinemagraph
US20130076941A1 (en) Systems And Methods For Editing Digital Photos Using Surrounding Context
US10282819B2 (en) Image display control to grasp information about image
CN106791390B (zh) 广角自拍实时预览方法及用户终端
KR100934211B1 (ko) 휴대용 단말기의 파노라마 이미지 생성 방법
CN107644451B (zh) 动画展示方法和装置
CN114071009B (zh) 一种拍摄方法及设备
US9135275B2 (en) Digital photographing apparatus and method of providing image captured by using the apparatus
CN109618092B (zh) 一种拼接拍照方法、系统及存储介质
KR102022559B1 (ko) 듀얼 카메라를 이용한 무배경 이미지 촬영과 이를 이용한 합성사진 촬영 방법 및 컴퓨터 프로그램
JP2017004343A (ja) 表示制御装置、その制御方法、および撮像装置、プログラム、並びに記憶媒体
KR20200029120A (ko) 듀얼 카메라를 이용한 배경 제거 사진 촬영 방법 및 컴퓨터 프로그램
CN115174810A (zh) 拍摄方法及装置、电子设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right