Electronic device for capturing panoramic images

An electronic device and a method enable capturing a 360° panoramic image by a digital camera having a fixed angle lens. A number of frames is set for capturing the 360° panoramic image of the digital camera unit. The electronic device receives an initial azimuth of the digital camera unit from an electronic compass and determines rotation points of the digital camera unit. A current azimuth from an electronic compass of the electronic device is received and the rotated angle of the digital camera unit is calculated. The electronic device captures at least one image if the digital camera unit rotates to one of the rotation points.

BACKGROUND

1. Technical Field

Embodiments of the present disclosure relate to image capture, and more particularly to a device and method for capturing a 360° panoramic image.

2. Description of Related Art

Electronic devices equipped with a digital camera provide only a small fixed viewing angle for capturing images. Capture of a 360° panoramic image is not possible in many such devices. Thus, some digital cameras have been developed to capture multiple images and combine the captured images into one panoramic image by processing application. However, the repeated image capture required can be inconvenient and less than precise.

DETAILED DESCRIPTION

In general, the word “module” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as, for example, Java, C, or assembly. One or more software instructions in the module may be embedded in firmware, such as an EPROM. It will be appreciated that module may comprise connected logic units, such as gates and flip-flops, and may comprise programmable units, such as programmable gate arrays or processors. The module described herein may be implemented as either software and/or hardware module and may be stored in any type of computer-readable medium or other computer storage device.

FIG. 1is a block diagram of one embodiment of an electronic device1. The electronic device1is capable of capturing of a 360° panoramic image. Depending on the embodiment, the device can be a mobile phone, a notebook computer, or a personal digital assistant (PDA). The electronic device1includes a system10, an electronic compass11, at least one processor12, a storage unit13, a display unit14and a digital camera unit15. The system10includes programs including a start module200, a setup module300, an initial module400, a determination module500, a warning module600, a camera control module700, and a count module800.

The electronic device1is generally controlled and coordinated by operating system software, such as the UNIX, Linux, Windows 95, 98, NT, 2000, XP, Vista, Mac OS X, an embedded operating system, or any other compatible operating systems. In other embodiments, the electronic device1may be controlled by a proprietary operating system. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, and I/O services, and provide a user interface, such as a graphical user interface (GUI), among other things.

The electronic compass11is operable to detect an azimuth of the digital camera unit15of the electronic device1. For example, the electronic compass11detects the current azimuth of a lens of the digital camera unit15at of the moment when the digital camera unit15captures an image.

The at least one processor12may execute one or more programs stored in the storage unit13to provide functions for the start module200, the setup module300, the initial module400, the determination module500, the warming module600, the camera control module700, and the counting module800. The at least one processor12, as an example, may include a CPU, math coprocessor, or shift register.

The storage unit13is electronically connected to the electronic compass11, the least one processor12, the display unit14, the digital camera unit15and the system10. The storage unit13is operable to store many kinds of data, such as the captured images, the azimuth information, a customization function code of the electronic device1, computerized codes of the system10, programs of an operating system and other applications of the electronic device1. The storage unit13may include a hard disk drive, flash memory, RAM, ROM, cache, or external storage mediums.

The display unit14displays information related to the captured image, for example the azimuth information of the electronic device1and the captured images by the digital camera unit15. The display unit14can be a display screen, a resistive touch screen, or a capacitive touch screen.

The digital camera unit15is operable to capture images and send the captured images to the storage unit13.

The start module200is operable to determine whether to capture a 360° panoramic image by the digital camera unit15. In one embodiment, the start module200activates a 360° panoramic image function of the electronic device1in response to a user activating a corresponding function of the electronic device1. The 360° panoramic image function is used to combine several fixed angle captured images into one 360° panoramic image using the processor12. In one embodiment, the start module200is connected to a hotkey installed in the electronic device1. If a user pushes the hotkey, the start module200actives the 360° panoramic image function of the electronic device1.

The setup module300is operable to set a number of frames required for capture to the digital camera unit15to achieve the 360° panoramic image. If no number is set by the setup module300, a default number of frames for capture of the 360° panoramic image is selected. In one embodiment, the default number of frames for capturing the 360° panoramic image can be determined by calculating a maximum angle of the lens of the digital camera unit15. For example, if the maximum angle of the lens configured in the digital camera unit15is 120°, the default number of frames is set to three, given that 360 °/120°=3. If the result is not integer divisible, the result is an unconditional decimal integer. For example, the maximum angle of another lens configured in the digital camera unit15is 100°, the default number is set to four. (360° divided by 100° equals 3.6, so the unconditional decimal integer of 3.6 is integer 4.) Accordingly, the maximum angle of the lens is obtained from the manufacture information of the lens.

The initial module400is operable to receive an initial azimuth of the digital camera unit15from the electronic compass11. In addition, the initial module400is operable to determine a plurality of rotation points of the digital camera unit15by calculating from the set number of frames and the initial azimuth of the digital camera unit15.FIG. 3is a schematic diagram of the electronic device1ofFIG. 1capturing a 360° panoramic image. In one embodiment, if the number of frames is set to 8, after obtaining a step of rotation angle of 45°. (360° divided by 8 equals 45°.) As shown inFIG. 3, if the initial azimuth of the digital camera unit15installed in the electronic device1is P1, k the digital camera unit15starts to capture at P1and captures a 360° panoramic image by 8 rotation points which varies in a 45° step.

The determination module500is operable to receive a current azimuth of the digital camera unit15from the electronic compass11and calculate a rotated angle of the digital camera unit15. The rotated angle of the digital camera unit15is calculated by the current azimuth minus the initial azimuth of the digital camera unit15. For example, if the initial azimuth is 45° and the current azimuth is 95°, the rotated angle of the digital camera unit15is 50°. In addition, the determination module500determines whether the digital camera unit15rotates to one of the rotation points by calculated rotated angle of the digital camera unit15.

The warning module600outputs a message to capture one image in response to detecting that the digital camera unit15rotates to one of the rotation points. For example, the message can be an audio signal or a vibration.

The camera control module700directs the digital camera unit15to capture at least one image if rotated to one of the rotation points. In one embodiment, the camera control module700directs the digital camera unit15to capture one more image at the same azimuth if the first captured image is unclear.

The counting module800calculates a capture time of the digital camera unit15and determines whether the capture time equals the set number of frames for the 360° panoramic image. The counting module800issues a stop capture signal to the camera control module700when the capture time equals the set number of frames for the 360° panoramic image.

FIG. 2is a flowchart illustrating one embodiment of a method of capturing a 360° panoramic image using an electronic device, such an electronic device1. Depending on the embodiment, additional blocks may be added, others deleted, and the ordering of the blocks may be changed.

In block S202, a start module200determines whether to capture a 360° panoramic image by the digital camera unit15. In one embodiment, the start module200determines whether a signal to capture a 360° panoramic image from the electronic device1has been received. If the signal to capture a 360° panoramic image is received, block S204is implemented. Otherwise, if no signal to capture the 360° panoramic image, a general procedure for image capturing is processed.

In block S204, a number of frames required for capture to the digital camera unit15to provide a 360° panoramic image function is set. If no number of frames is set, a default number of frames for capturing the 360° panoramic image is selected. In one embodiment, the default number of frames for capturing the 360° panoramic image is determined by calculating by a maximum angle for a lens of the digital camera unit15. For example, if the maximum angle of the lens configured in the digital camera unit15is 90°, the default number is set to four. (360°/90°=4.) If the result is not integer divisible, the result is an unconditional decimal integer. For example, if the maximum angle of another lens configured in the digital camera unit15is 100°, the default number is set to four. (360°/100°=3.6, so the unconditional decimal integer of 3.6 is integer 4), in which the maximum angle of the lens is obtained from the manufacture information of the lens.

In block S206, an initial azimuth of the digital camera unit15from the electronic compass11is received and a plurality of rotation points of the digital camera unit15is determined. In one embodiment, determination of the rotation points is done by calculating from the set number of frames and the initial azimuth of the digital camera unit15. For example, if the number of frames is set to 6, the step of rotation angle is calculated by 360° divided by 6 equaling to 60°. Then, the digital camera unit15starts to capture at a starting azimuth and captures images by each rotation points which varies in a 60° step.

In block S208, a current azimuth of the digital camera unit15from the electronic compass11is received and a rotated angle of the digital camera unit15is calculated, where the rotated angle of the digital camera unit15is calculated by the current azimuth minus the initial azimuth of the digital camera unit15.

In block S210, a determination as to whether the digital camera unit15rotates to one of the rotation points is made. If the digital camera unit15rotates to one of the rotation points, block S212is implemented. Otherwise, if the digital camera unit15does not rotate to one of the rotation points, block S208is implemented.

In block S212, a message to capture one image is output. In one embodiment, the message can be an audio signal or a vibration.

In block S214, a camera control module700directs the digital camera unit15to capture one image. In one embodiment, the camera control module700directs the digital camera unit15to capture at least one image at the same azimuth if the first captured image is unclear.

In block S216, counting module800calculates a capture time of the digital camera unit15.

In block S218, the counting module800determines whether the capture time equals the set number of frames for capturing the 360° panoramic image. If the capture time equals the set number of frames, the process is complete. Otherwise, if the capture time does not equal the set number of frames, block S208is implemented.