Electronic device, method, and non-transitory computer-readable storage medium for generating cylindrical panoramic image
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SAMSUNG ELECTRONICS CO LTD
- Filing Date
- 2025-08-14
- Publication Date
- 2026-06-25
AI Technical Summary
Existing panoramic image generation technologies fail to address user discomfort caused by distortion in planar panoramic images, particularly those with bent or curved objects, leading to a need for improved methods to generate distortion-free cylindrical panoramic images.
An electronic device and method that utilize depth values and curvature calculations to convert planar panoramic images into cylindrical panoramic images, reducing distortion by applying depth values and curvatures to generate a panoramic image of a cylinder.
The solution effectively reduces distortion in panoramic images by transforming planar images into cylindrical formats, enhancing user experience by minimizing discomfort from image bending.
Smart Images

Figure KR2025012433_25062026_PF_FP_ABST
Abstract
Description
Electronic device, method, and non-transient computer-readable storage medium for generating a panoramic image of a cylinder
[0001] The present disclosure relates to an electronic device, a method, and a non-transient computer-readable storage medium for generating a panoramic image of a cylinder.
[0002] An electronic device can acquire a panoramic image. A panoramic image can be generated by combining multiple images. The field of view (FOV) of the panoramic image may be larger than the FOV of each of the multiple images. The electronic device can acquire a panoramic image by performing feature matching on multiple images.
[0003] The information described above may be presented only as background information to aid in understanding the present disclosure. No claim or determination is made as to whether any of the foregoing may be applied as prior art related to the present disclosure.
[0004] The aspects of the present disclosure address at least the problems and / or disadvantages mentioned above and provide at least the advantages described below. Accordingly, the aspects of the present disclosure provide an electronic device, a method, and a non-transient computer-readable storage medium for generating a panoramic image of a cylinder.
[0005] Additional aspects will be presented in part in the following description, and in part, may become apparent from the above description or be learned through the practice of the proposed embodiments.
[0006] According to one aspect of the present disclosure, an electronic device is described. The electronic device may include at least one processor comprising a processing circuit, a display, and a memory comprising one or more storage media configured to store one or more programs configured to be executed individually or collectively by the at least one processor. The one or more programs may include instructions that cause the electronic device to acquire a first panoramic image corresponding to a planar panorama. The one or more programs may include instructions that cause the electronic device to detect an event for converting the first panoramic image into a second panoramic image. The one or more programs may include instructions that cause the electronic device to acquire a depth value of the first panoramic image based on the detection. The one or more programs may include instructions that cause the electronic device to acquire a curvature for generating the second panoramic image using the depth value of the first panoramic image. The above one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature based on the first panoramic image. The above one or more programs may include instructions that cause the electronic device to display a portion of the second panoramic image through the display.
[0007] According to another aspect of the present disclosure, a method is described. The method may be performed within an electronic device comprising a display. The method may include an operation of acquiring a first panoramic image corresponding to a planar panoramic image. The method may include an operation of detecting an event for converting the first panoramic image into a second panoramic image. The method may include an operation of acquiring a depth value of the first panoramic image based on the detection. The method may include an operation of acquiring a curvature for generating the second panoramic image using the depth value of the first panoramic image. The method may include an operation of generating the second panoramic image according to the curvature based on the first panoramic image. The method may include an operation of displaying a portion of the second panoramic image through the display.
[0008] According to another aspect of the present disclosure, a non-transient computer-readable storage medium is described. The non-transient computer-readable storage medium may store one or more programs. The one or more programs may include instructions that cause the electronic device to acquire a first panoramic image corresponding to a planar panoramic image when executed by the electronic device including a display. The one or more programs may include instructions that cause the electronic device to detect an event to convert the first panoramic image to a second panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to acquire a depth value of the first panoramic image based on the detection when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to acquire a curvature for generating the second panoramic image using the depth value of the first panoramic image when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature based on the first panoramic image when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to display a portion of the second panoramic image through the display when executed by the electronic device.
[0009] Other aspects, advantages, and important features of the present disclosure will become apparent to those skilled in the art from the following detailed description, which discloses various embodiments of the present disclosure in conjunction with the accompanying drawings.
[0010] The above and other aspects, features, and advantages of specific embodiments of this disclosure will become more apparent from the following description in conjunction with the accompanying drawings. In the drawings:
[0011] FIG. 1 illustrates an example of distortion included in a planar panoramic image according to one embodiment of the present disclosure, and
[0012] FIG. 2 is a simplified block diagram of an electronic device according to one embodiment of the present disclosure, and
[0013] FIG. 3 is a flowchart illustrating the operations of an electronic device for generating a panoramic image of a cylinder according to one embodiment of the present disclosure, and
[0014] FIG. 4 illustrates an example of user input for displaying a panoramic image of a cylinder according to one embodiment of the present disclosure, and
[0015] FIG. 5 illustrates an example of obtaining depth values of a planar panoramic image according to one embodiment of the present disclosure,
[0016] FIG. 6 illustrates examples of panoramic images of cylinders having different curvatures according to one embodiment of the present disclosure, and
[0017] FIG. 7 is a flowchart illustrating the operations of an electronic device for displaying a portion of a panoramic image of a cylinder according to one embodiment of the present disclosure, and
[0018] FIG. 8 illustrates an example of an animation changing from a planar panoramic image to a cylindrical panoramic image according to one embodiment of the present disclosure, and
[0019] FIG. 9 illustrates an example of scrolling a panoramic image of a cylinder according to one embodiment of the present disclosure, and
[0020] FIGS. 10a and 10b illustrate examples of displaying a portion of a panoramic image of a cylinder so as to be viewed at a position spaced apart by a reference distance from the panoramic image of the cylinder according to various embodiments of the present disclosure,
[0021] FIG. 11a is a flowchart illustrating the operations of an electronic device for displaying a lens flare effect on a portion of a panoramic image of a cylinder according to one embodiment of the present disclosure, and
[0022] FIG. 11b illustrates an example of a lens flare effect displayed within a portion of a panoramic image of a cylinder according to one embodiment of the present disclosure, and
[0023] FIG. 12 is a block diagram of an electronic device in a network environment according to various embodiments.
[0024] It should be noted that throughout the drawings, similar reference numbers are used to describe identical or similar elements, features, and structures.
[0025] The following description is provided to facilitate a comprehensive understanding of the various embodiments of the present disclosure as defined by the claims and their equivalents, with reference to the accompanying drawings. While this description includes various specific details to aid understanding, they are to be considered merely illustrative. Accordingly, those skilled in the art will recognize that various changes and modifications to the various embodiments of this specification are possible without departing from the scope and spirit of the present disclosure. Additionally, descriptions of well-known functions and configurations may be omitted for clarity and brevity.
[0026] The terms and words used in the following description and claims are not limited to their bibliographic meanings and are used merely to enable the inventor to clearly and consistently understand the contents of the present disclosure. Accordingly, it will be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided only for illustrative purposes and is not intended to limit the present disclosure as defined by the appended claims and their equivalents.
[0027] Singular words should be understood to include the plural form unless the context clearly indicates otherwise. Thus, for example, a reference to "compositional surface" includes a reference to one or more of these surfaces.
[0028] It must be clear that the blocks and combinations of each flowchart can be executed by one or more computer programs containing instructions. The entire set of one or more computer programs may be stored in a single memory device, or the one or more computer programs may be divided into several parts and stored in several memory devices.
[0029] The functions or operations described herein may be processed by a single processor or a combination of processors. A single processor or a combination of processors is a circuit that performs processing and includes circuits such as an application processor (AP, e.g., a central processing unit (CPU)), a communication processor (CP, e.g., a modem), a graphics processing unit (GPU), a neural processing unit (NPU) (e.g., an artificial intelligence (AI) chip), a Wi-Fi (wireless fidelity) chip, a Bluetooth® chip, a GPS (global positioning system) chip, a near field communication (NFC) chip, a connectivity chip, a sensor controller, a touch controller, a fingerprint sensor controller, a display driver integrated circuit (IC), an audio codec chip, a USB (universal serial bus) controller, a camera controller, an image processing IC, a microprocessor unit (MPU), a system on chip (SoC), an IC, etc.
[0030] FIG. 1 illustrates an example of distortion included in a planar panoramic image according to one embodiment of the present disclosure.
[0031] Referring to FIG. 1, the electronic device (100) may be a device available for displaying a panoramic image. For example, the electronic device (100) may be one of various types of mobile devices such as smartphones having various form factors (e.g., bar-type smartphones, foldable-type smartphones, or rollable-type smartphones), tablets, wearable devices, cellular phones, personal computers (PCs) (e.g., laptops and / or desktops), and / or other similar computing devices that include circuits (or circuitry) for displaying a panoramic image.
[0032] The electronic device (100) may include a display (110) (e.g., the display (230) of FIG. 2). For example, the display (110) may be used to display a panoramic image. In state (105), the electronic device (100) may display a planar panoramic image (115) through the display (110). The planar panoramic image (115) may be referred to as a two-dimensional panoramic image. For example, the planar panoramic image (115) may be described as a panoramic image in which a cylindrical panoramic image is unfolded.
[0033] A planar panoramic image (115) can be obtained by combining multiple images. The multiple images can be described as images obtained in succession. The multiple images can be combined based on feature matching. Feature matching can be defined as combining multiple images by connecting corresponding features (or feature points) within each of the multiple images. In order for the features within the multiple images to be connected on a plane, objects included within the multiple images may be bent or curved. For example, a planar panoramic image (115) in which multiple images are combined may include objects (120-1, 120-2). The objects (120-1, 120-2) may represent subjects. In a planar panoramic image (115) in which multiple images are combined on a plane, the objects (120-1, 120-2) may be represented as being bent or curved. In a flat panoramic image (115), as objects (120-1, 120-2) are bent or displayed in a bent manner, the user may experience discomfort. A method may be required to resolve the user's discomfort caused by distortion (e.g., barrel distortion) caused (or generated) in the flat panoramic image (115) as objects (120-1, 120-2) are bent or bent.
[0034] To resolve this inconvenience, the electronic device (100) can generate a cylindrical panoramic image using a planar panoramic image (115). For example, to generate a cylindrical panoramic image, the depth value of the planar panoramic image (115) may be used. For example, the electronic device (100) can provide a panoramic image with compensated (or reduced) distortion by displaying a portion of the cylindrical panoramic image through a display (110).
[0035] The electronic device (100) may perform operations illustrated in the description of FIGS. 3 through 9, FIGS. 10a, FIGS. 10b, FIGS. 11a, and FIGS. 11b to generate a panoramic image of a cylinder. The electronic device (100) may include components for performing said operations. said components may be illustrated in the description of FIG. 2.
[0036] FIG. 2 is a simplified block diagram of an electronic device according to one embodiment of the present disclosure.
[0037] Referring to FIG. 2, the electronic device (200) may be one of various types of mobile devices, such as smartphones having various form factors (e.g., bar-type smartphones, foldable-type smartphones, or rollable-type smartphones), tablets, wearable devices, cellular phones, personal computers (PCs) (e.g., laptops and / or desktops), and / or other similar computing devices. For example, the electronic device (200) may include or correspond to the electronic device (100) of FIG. 1. For example, the electronic device (200) may include at least a part of the electronic device (1201) of FIG. 12 or correspond to at least a part of the electronic device (1201) of FIG. 12. The electronic device (200) may include at least one processor (210) (e.g., processor (1220) of FIG. 12), memory (220) (e.g., memory (1230) of FIG. 12), and display (230) (e.g., display module (1260) of FIG. 12).
[0038] At least one processor (210) may include a processing circuit. For example, at least one processor (210) may include a CPU (central processing unit) (e.g., including a processing circuit). For example, at least one processor (210) may include a GPU (graphic processing unit) (e.g., including a processing circuit) and / or an NPU (neural processing unit) (e.g., including a processing circuit). For example, at least one processor (210) may be described as an application processor. For example, at least one processor (210) may be configured to control a memory (220) and a display (230). At least one processor (210) may be configured to execute instructions stored in memory (220) individually or collectively to cause an electronic device (200) (or electronic device (100)) to perform at least some of the operations illustrated in the description of FIG. 1. At least one processor (210) may be configured to execute instructions stored in memory (220) to cause an electronic device (200) to perform at least some of the operations illustrated in the descriptions of FIGS. 3 through 9, FIGS. 10a, FIGS. 10b, FIGS. 11a, and FIGS. 11b.
[0039] The term "processor" as used herein, including in the claims, may include various processing circuits comprising at least one processor, and one or more of said at least one processor may be configured to perform the various functions described below in a distributed manner, individually and / or collectively. As used below, where "processor," "at least one processor," and "one or more processors" are described as being configured to perform various functions, these terms encompass, for example, but not limited to, situations where one processor performs some of the cited functions and another processor(s) perform other parts of the cited functions, and also situations where one processor can perform all of the cited functions. Additionally, said at least one processor may include a combination of processors that perform the enumerated / disclosed various functions, for example, in a distributed manner. At least one processor may execute program instructions to achieve or perform the various functions.
[0040] The memory (220) may include one or more storage media. For example, the memory (220) may store various data used by at least one component of the electronic device (200) (e.g., at least one processor (210) and / or display (230)). For example, the data may include input data or output data for software and related commands. The memory (220) may include volatile memory or non-volatile memory.
[0041] A display (230) can output visualized information under the control of at least one processor (210). For example, the display (230) may include a flat panel display (FPD) and / or electronic paper. The FPD may include a liquid crystal display (LCD), a plasma display panel (PDP), and / or one or more light emitting diodes (LEDs). For example, the LEDs may include organic LEDs (OLEDs). The display (230) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by the touch. For example, the display (230) may be configured to display a portion of a panoramic image of a cylinder. For example, the display (230) may be configured to receive user input. For example, a display (230) that supports touch functions may be referred to as a touchscreen.
[0042] The electronic device (200) illustrated in FIG. 2 may perform at least some of the operations illustrated in the descriptions of FIG. 3 through 9, FIG. 10a, FIG. 10b, FIG. 11a, and FIG. 11b. For example, the operations illustrated in the descriptions of FIG. 3 through 9, FIG. 10a, FIG. 10b, FIG. 11a, and FIG. 11b may be caused by (or within) the electronic device (200) under the control of at least one processor (210).
[0043] FIG. 3 is a flowchart illustrating the operations of an electronic device for generating a panoramic image of a cylinder according to one embodiment of the present disclosure.
[0044] Referring to FIG. 3, in operation 300, at least one processor (210) can acquire a planar panoramic image (e.g., the planar panoramic image (115) of FIG. 1). For example, the planar panoramic image may be received from an external electronic device or generated within an electronic device. For example, at least one processor (210) may receive a shooting input for acquiring a panoramic image while displaying a preview image. At least one processor (210) may acquire a plurality of images based on the shooting input for acquiring a panoramic image. The plurality of images may include images acquired consecutively as the orientation of the electronic device (200) changes at the same (or substantially the same) location. At least one processor (210) may acquire a planar panoramic image by combining the plurality of images based on feature matching.
[0045] In operation 310, at least one processor (210) can detect an event for converting a planar panoramic image into a cylindrical panoramic image. The planar panoramic image may be referred to as a 2D panoramic image, and the cylindrical panoramic image may be referred to as a 3D panoramic image. For example, at least one processor (210) can detect an event for converting a planar panoramic image into a cylindrical panoramic image based on acquiring a planar panoramic image. According to one embodiment, at least one processor (210) can detect an event for converting a planar panoramic image into a cylindrical panoramic image based on identifying a planar panoramic image that satisfies a reference condition among the acquired planar panoramic images. For example, the reference condition may be pre-set or set (or changed) by a user.
[0046] At least one processor (210) can receive user input for displaying a panoramic image of a cylinder. Based on the user input for displaying a panoramic image of a cylinder, at least one processor (210) can detect an event for converting a panoramic image of a plane into a panoramic image of a cylinder. User input for displaying a panoramic image of a cylinder is exemplified in the description of FIG. 4.
[0047] FIG. 4 illustrates an example of user input for displaying a panoramic image of a cylinder according to one embodiment of the present disclosure.
[0048] Referring to FIG. 4, in a state (400), at least one processor (210) can display a planar panoramic image (405) through a display (230). At least one processor (210) can simultaneously display an executable object (or UI (user interface) object) (410) that directs the display of a cylindrical panoramic image through the display (230) along with the planar panoramic image (405). For example, the executable object (410) may include text (e.g., "view panorama") that directs the display of a cylindrical panoramic image.
[0049] At least one processor (210) may receive (or identify) user input (415) for an executable object (410). For example, user input (415) may include touch input having a contact point on the executable object (410). User input (415) may be received via a display (230) (e.g., a touchscreen). For example, user input (415) may be received via a cursor (or pointer) controlled by an external electronic device (e.g., a mouse) connected to the electronic device (200). User input (415) may include voice input (or speech input) received via a microphone of the electronic device (200), but is not limited thereto.
[0050] At least one processor (210) can detect an event to convert a planar panoramic image into a cylindrical panoramic image based on user input (415). At least one processor (210) can perform operation 320 of FIG. 3 based on user input (415).
[0051] Referring again to FIG. 3, in operation 320, at least one processor (210) can obtain depth values of a planar panoramic image. For example, the depth values of the planar panoramic image may be referenced as focal length and / or DoF (depth of field or depth of focus). At least one processor (210) can perform object detection contained within the planar panoramic image to obtain depth values of the planar panoramic image. At least one processor (210) can obtain depth values of each of the detected objects within the planar panoramic image. At least one processor (210) can obtain depth values of the planar panoramic image using the depth values of each of the detected objects within the planar panoramic image. Obtaining depth values of the planar panoramic image is exemplified in the description of FIG. 5.
[0052] FIG. 5 illustrates an example of obtaining depth values of a planar panoramic image according to one embodiment of the present disclosure.
[0053] Referring to FIG. 5, a planar panoramic image (405) may include objects (500-1, 500-2, 500-3). The objects (500-1, 500-2, 500-3) may represent subjects. At least one processor (210) may identify the objects (500-1, 500-2, 500-3) by performing object detection on the planar panoramic image (405). For example, a trained model may be used to perform object detection. The trained model may include an artificial intelligence (AI) model, a machine learning model, and / or a deep learning model. At least one processor (210) can obtain depth values for each of the identified objects (500-1, 500-2, 500-3) by performing depth estimation on a planar panoramic image (405). Depth estimation can be described as obtaining (or estimating) the depth value of each pixel contained within a 2D image using a 2D image. For example, a trained model may be used to perform depth estimation. The depth value for an object may correspond to the distance between the subject represented by the object and the lens of the camera used to acquire the image containing the object. For example, the depth value for an object may include the focal length of the camera for the object and / or the DoF of the camera for the object.
[0054] At least one processor (210) can obtain the average value of the depth values of each of the objects (500-1, 500-2, 500-3) included in the planar panoramic image (405). At least one processor (210) can obtain the average value of the depth values of each of the objects (500-1, 500-2, 500-3) as the depth value of the planar panoramic image (405).
[0055] At least one processor (210) can determine one object (e.g., object (500-3)) among the objects (500-1, 500-2, 500-3) included in the planar panoramic image (405) as a reference object. For example, an object (e.g., object (500-3)) can be determined as a reference object as it satisfies a reference condition. The reference condition may be pre-set or set (or changed) by a user. At least one processor (210) can obtain a depth value for the object determined as a reference object (e.g., object (500-3)) as a depth value of the planar panoramic image (405).
[0056] At least one processor (210) can identify a region of interest (ROI) within a planar panoramic image (405). At least one processor (210) can identify at least one object (e.g., object (500-3)) included within the ROI among the objects (500-1, 500-2, 500-3). At least one processor (210) can obtain a depth value for at least one object (e.g., object (500-3)) included within the ROI as a depth value of the planar panoramic image (405). However, it is not limited thereto.
[0057] Referring again to FIG. 3, in operation 330, at least one processor (210) can obtain a curvature for generating a panoramic image of a cylinder by using the depth value of the panoramic image of a plane. The curvature for generating a panoramic image of a cylinder may indicate the degree to which the panoramic image of a plane is bent in order to convert the panoramic image of a plane into a panoramic image of a cylinder. For example, the curvature for generating a panoramic image of a cylinder may be expressed as a real number between 0 and 1.
[0058] The curvature for generating a panoramic image of a cylinder can be obtained according to the following mathematical formula 1. The curvature for generating a panoramic image of a cylinder can be obtained by applying the depth value of the panoramic image of a plane to the following mathematical formula 1.
[0059]
[0060] Mathematical Formula 1 is merely an example to aid understanding, and embodiments of the present disclosure are not limited thereto. Mathematical Formula 1 may be modified, applied, or extended in various ways.
[0061] In Equation 1, curvature represents the curvature for generating a panoramic image of a cylinder, and DoF (depth of field or depth of focus) represents the depth value of a panoramic image of a plane, and DoF min represents the minimum depth value of the planar panoramic image, and DoF max It can represent the maximum depth value of a planar panoramic image. DoF min and DoF max can be described as a constant. DoF min It can be set based on the minimum depth value (or minimum value of the depth map) obtainable from a planar panoramic image. DoF max It can be set based on an infinite value of depth values obtainable from the planar panoramic image (or the maximum value of the depth map). The curvature for generating the cylindrical panoramic image can be inversely proportional to the depth values of the planar panoramic image. For example, the curvature for generating the cylindrical panoramic image is based on the maximum value of the depth values of the planar panoramic image (e.g., DoF max When ), it is 0, and the depth value of the planar panoramic image is the minimum value (e.g., DoF minIt can be 1 when ). The curvature for generating a panoramic image of a cylinder can be expressed as a real number between 0 and 1.
[0062] In operation 340, at least one processor (210) can generate a panoramic image of a cylinder according to the curvature using a panoramic image of a plane. To generate a panoramic image of a cylinder according to the curvature, the curvature may be applied as a weight to each of the plane vector and the cylinder vector. For example, the plane vector may be described as a vector value of a panoramic image of a plane in three-dimensional space. For example, the cylinder vector may be described as a vector value of a panoramic image of a plane projected onto a cylinder mesh in three-dimensional space. The cylinder mesh may be described as a mesh onto which a panoramic image of a plane is projected to generate a panoramic image of a cylinder having maximum curvature (e.g., 1). A panoramic image of a plane projected onto a cylinder mesh may be described as a panoramic image of a cylinder according to maximum curvature. Plane vectors and cylinder vectors can be obtained according to the following mathematical formulas (e.g., Equations 2 to 7).
[0063]
[0064] Mathematical Formula 2 is merely an example to aid understanding, and embodiments of the present disclosure are not limited thereto. Mathematical Formula 2 may be modified, applied, or extended in various ways.
[0065] In Equation 2, radius represents the radius value of the cylindrical mesh, and vertical FOV represents the vertical FOV value of the planar panoramic image. The vertical FOV value of the planar panoramic image can be determined based on the height value of the planar panoramic image and the depth value of the planar panoramic image. The radius value of the cylindrical mesh can be obtained by applying the vertical FOV value of the planar panoramic image to Equation 2.
[0066]
[0067] Mathematical Formula 3 is merely an example to aid understanding, and embodiments of the present disclosure are not limited thereto. Mathematical Formula 3 may be modified, applied, or extended in various ways.
[0068] In Equation 3, horizontal FOV represents the horizontal FOV value of the planar panoramic image, vertical FOV represents the vertical FOV value of the planar panoramic image, image width represents the width value of the planar panoramic image, and image height represents the height value of the planar panoramic image. The horizontal FOV value of the planar panoramic image can be obtained by applying the vertical FOV value of the planar panoramic image, the width value of the planar panoramic image, and the height value of the planar panoramic image to Equation 3. The vertical FOV value of the planar panoramic image can correspond to the vertical FOV in Equation 2.
[0069]
[0070] Mathematical Formula 4 is merely an example to aid understanding, and embodiments of the present disclosure are not limited thereto. Mathematical Formula 4 may be modified, applied, or extended in various ways.
[0071] In Equation 4, texture coordinate represents the coordinate value of a texture on a 2D plane for projecting a planar panoramic image into 3D space, tx represents the x-coordinate value of the texture, and ty represents the y-coordinate value of the texture. The x-coordinate value of the texture is defined as a real number between 0.0 and 1.0, and the y-coordinate value of the texture can be defined as a real number between 0.0 and 1.0. The coordinate value of the texture can be defined as a vector of the texture. The coordinate value of the texture can be defined according to Equation 4.
[0072]
[0073] Mathematical Formula 5 is merely an example to aid understanding, and embodiments of the present disclosure may not be limited thereto. Mathematical Formula 5 may be modified, applied, or extended in various ways.
[0074] In Equation 5, Radius represents the coordinate value of the radius of the cylinder mesh on a 2D plane, rx represents the x-coordinate value of the radius of the cylinder mesh, ry represents the y-coordinate value of the radius of the cylinder mesh, radians represents the radian value of the cylinder mesh, texture coordinate represents the coordinate value of the texture on a 2D plane for projecting the planar panoramic image into 3D space, horizontal FOV represents the horizontal FOV value of the planar panoramic image, and vertical FOV represents the vertical FOV value of the planar panoramic image. The horizontal FOV value of the planar panoramic image can be obtained according to Equation 3. The coordinate value of the texture on a 2D plane for projecting the planar panoramic image into 3D space can be obtained according to Equation 4. The coordinate value of the radius of the cylinder mesh can be defined as a vector of the radius of the cylinder mesh. The radian value of the cylinder mesh can be determined according to the radius value of the cylinder mesh. The radius value of the cylinder mesh can be obtained according to Equation 2. The coordinate value of the radius of the cylinder mesh can be defined according to Equation 5.
[0075]
[0076] Mathematical Formula 6 is merely an example to aid understanding, and embodiments of the present disclosure are not limited thereto. Mathematical Formula 6 may be modified, applied, or extended in various ways.
[0077] In Equation 6, cylinder vector represents the coordinate value of a panoramic image of a plane projected onto a cylinder mesh in 3D space, x represents the x-coordinate value of a panoramic image of a plane projected onto a cylinder mesh in 3D space, y represents the y-coordinate value of a panoramic image of a plane projected onto a cylinder mesh in 3D space, z represents the z-coordinate value of a panoramic image of a plane projected onto a cylinder mesh in 3D space, radius represents the radius value of the cylinder mesh, rx represents the x-coordinate value of the radius of the cylinder mesh, and ty may represent the y-coordinate value of the texture. The radius value of the cylinder mesh can be obtained according to Equation 2. The y-coordinate value of the texture can be obtained according to Equation 4. The x-coordinate value of the radius of the cylinder mesh can be obtained according to Equation 5. The coordinate values of a planar panoramic image projected onto a cylindrical mesh in 3D space can be defined as vectors in 3D space. The equation obtained by Equation 6 can represent a planar panoramic image projected onto a cylindrical mesh in 3D space.
[0078]
[0079] Mathematical Formula 7 is merely an example for illustrative purposes and the embodiments of the present disclosure are not limited thereto. Mathematical Formula 7 may be modified, applied, or extended in various ways.
[0080] In Equation 7, plane vector represents the coordinate value of a panoramic image of a plane in 3D space, x represents the x-coordinate value of a panoramic image of a plane in 3D space, y represents the y-coordinate value of a panoramic image of a plane in 3D space, z represents the z-coordinate value of a panoramic image of a plane in 3D space, radius represents the radius value of a cylinder mesh, rx represents the x-coordinate value of the radius of a cylinder mesh, and ty represents the y-coordinate value of a texture. The radius value of the cylinder mesh can be obtained according to Equation 2. The y-coordinate value of the texture can be obtained according to Equation 4. The x-coordinate value of the radius of the cylinder mesh can be obtained according to Equation 5. The coordinate value of a panoramic image of a plane in 3D space can be defined as a vector in 3D space. The equation obtained by Equation 7 can represent a panoramic image of a plane in 3D space.
[0081]
[0082] Mathematical Formula 8 is merely an example for illustrative purposes and the embodiments of the present disclosure are not limited thereto. Mathematical Formula 8 may be modified, applied, or extended in various ways.
[0083] In Equation 8, projection xyz represents the coordinate values of a panoramic image of a cylinder according to curvature in 3D space, curvature represents the curvature for generating a panoramic image of a cylinder, plane vector represents the coordinate values of a panoramic image of a plane in 3D space, and cylinder vector represents the coordinate values of a panoramic image of a plane projected onto a cylinder mesh in 3D space. The curvature of the panoramic image of a cylinder may correspond to the curvature for generating a panoramic image of a cylinder. The curvature for generating a panoramic image of a cylinder can be obtained according to Equation 1. The coordinate values of a panoramic image of a plane in 3D space can be obtained according to Equation 7. The coordinate values of a panoramic image of a cylinder according to curvature in 3D space can be obtained according to Equation 8.
[0084] The coordinate values of the panoramic image of the cylinder according to the curvature in 3D space can be obtained by applying a first weight to the coordinate values of the panoramic image of the plane in 3D space and applying a second weight to the coordinate values of the panoramic image of the plane projected onto the cylinder mesh in 3D space. At least one processor (210) can perform linear interpolation (LERP) between the coordinate values of the panoramic image of the plane in 3D space and the coordinate values of the panoramic image of the plane projected onto the cylinder mesh in 3D space by applying a first weight to the coordinate values of the panoramic image of the plane in 3D space and applying a second weight to the coordinate values of the panoramic image of the plane projected onto the cylinder mesh in 3D space. The first weight and the second weight can be determined according to the curvature for generating the panoramic image of the cylinder. A first weight (e.g., 1 - curvature for generating a panoramic image of a cylinder) may be inversely proportional to the curvature, and a second weight (e.g., curvature for generating a panoramic image of a cylinder) may be proportional to the curvature. At least one processor (210) may generate a panoramic image of a cylinder according to the curvature according to Equation 8.
[0085] At least one processor (210) can obtain a curvature for generating a spherical panoramic image by using the depth value of a planar panoramic image. At least one processor (210) can generate a spherical panoramic image according to the curvature by using the planar panoramic image. A planar vector and a sphere vector may be used to generate a spherical panoramic image. At least one processor (210) can perform linear interpolation by applying the curvature as a weight to each of the planar vector and the sphere vector. At least one processor (210) can apply a first weight to the planar vector and a second weight to the sphere vector. The first weight and the second weight may be determined according to the curvature for generating a spherical panoramic image. The first weight (e.g., 1 - curvature for generating a spherical panoramic image) may be inversely proportional to the curvature, and the second weight (e.g., curvature for generating a spherical panoramic image) may be proportional to the curvature.
[0086] Panoramic images of cylinders can be generated differently depending on the curvature. Panoramic images of cylinders with different curvatures are exemplified in the description of FIG. 6.
[0087] FIG. 6 illustrates examples of panoramic images of cylinders having different curvatures according to one embodiment of the present disclosure.
[0088] Referring to FIG. 6, the panoramic image of the first cylinder (600-1), the panoramic image of the second cylinder (600-2), and the panoramic image of the third cylinder (600-3) can be described as a panoramic image of a cylinder generated using a panoramic image of a plane. The first depth value of the first panoramic image of a plane used to generate the panoramic image of the first cylinder (600-1) may be smaller than the second depth value of the second panoramic image of a plane used to generate the panoramic image of the second cylinder (600-2). The second depth value of the second panoramic image of a plane used to generate the panoramic image of the second cylinder (600-2) may be smaller than the third depth value of the third panoramic image of a plane used to generate the panoramic image of the third cylinder (600-3).
[0089] A cylindrical panoramic image generated by applying different curvatures to a planar panoramic image can be generated to have cylindrical shapes with different curvatures. For example, at least one processor (210) can compensate (or reduce) distortions caused within a planar panoramic image according to the environment in which the planar panoramic image is captured, the focal length of the camera capturing the planar panoramic image, and the depth value of the planar panoramic image by generating a cylindrical panoramic image using a planar panoramic image.
[0090] Since the curvature for generating a panoramic image of a cylinder is inversely proportional to the depth value of the panoramic image of the plane used to generate the panoramic image of the cylinder, the first curvature (605-1) of the first panoramic image of the cylinder (600-1) is greater than the second curvature (605-2) of the second panoramic image of the cylinder (600-2), and the second curvature (605-2) of the second panoramic image of the cylinder (600-2) may be greater than the third curvature (605-3) of the third panoramic image of the cylinder (600-3). The first curvature (605-1) of the first panoramic image of the cylinder (600-1) may be greater than the third curvature (605-3) of the third panoramic image of the cylinder (600-3).
[0091] Because the first curvature (605-1) is greater than the second curvature (605-2), the panoramic image (600-1) of the first cylinder may be more curved or bent than the panoramic image (600-2) of the second cylinder. Because the second curvature (605-2) is greater than the third curvature (605-3), the panoramic image (600-2) of the second cylinder may be more curved or bent than the panoramic image (600-3) of the third cylinder.
[0092] The greater the depth value of the planar panoramic image, the lower the distortion that can occur (or be caused) within the planar panoramic image. Since the second depth value of the second planar panoramic image is greater than the first depth value of the first planar panoramic image, even if the second curvature (605-2) of the second cylinder panoramic image (600-2) is smaller than the first curvature (605-1) of the first cylinder panoramic image (600-1), low distortion can occur (or be caused) within the second cylinder panoramic image (600-2). Since the third depth value of the panoramic image of the third plane is greater than the second depth value of the panoramic image of the second plane, even if the third curvature (605-3) of the panoramic image of the third cylinder (600-3) is smaller than the second curvature (605-2) of the panoramic image of the second cylinder (600-2), low distortion may occur (or be caused) within the panoramic image of the third cylinder (600-3).
[0093] At least one processor (210) can display a portion of a panoramic image of a cylinder (e.g., a panoramic image of a first cylinder (600-1), a panoramic image of a second cylinder (600-2), or a panoramic image of a third cylinder (600-3)) through a display (230). Displaying a portion of a panoramic image of a cylinder is illustrated in the description of FIG. 7.
[0094] FIG. 7 is a flowchart illustrating the operations of an electronic device for displaying a portion of a panoramic image of a cylinder according to one embodiment of the present disclosure.
[0095] Referring to FIG. 7, in operation 700, at least one processor (210) can display a portion of a panoramic image of a cylinder through a display (230). For example, a portion of a panoramic image of a cylinder can be described as a portion of a panoramic image of a cylinder displayed through the display (230) when the height of the panoramic image of a cylinder corresponds (or substantially corresponds) to the height of the display area of the display (230). At least one processor (210) can determine a portion of a panoramic image of a cylinder by matching the height of the panoramic image of a cylinder to the height of the display area of the display (230). A portion of a panoramic image of a cylinder can be shown at a position spaced apart from the panoramic image of a cylinder by a reference distance. For example, the reference distance can be determined according to the vertical FOV of the panoramic image of a plane. The reference distance can correspond to the radius of the cylinder mesh onto which the panoramic image of a plane is projected. For example, the radius of the cylindrical mesh onto which a planar panoramic image is projected can be determined based on a reference distance.
[0096] At least one processor (210) may display an animation of changing from a flat panoramic image to a cylindrical panoramic image via a display (230) before displaying a portion of the cylindrical panoramic image. At least one processor (210) may display a portion of the cylindrical panoramic image based on the termination of the animation of changing from a flat panoramic image to a cylindrical panoramic image. An animation of changing from a flat panoramic image to a cylindrical panoramic image is exemplified in the description of FIG. 8.
[0097] FIG. 8 illustrates an example of an animation changing from a planar panoramic image to a cylindrical panoramic image according to one embodiment of the present disclosure.
[0098] Referring to FIG. 8, a state (800) can be described as a state in which a planar panoramic image (805) is displayed. In the state (800), at least one processor (210) may receive user input (e.g., user input (415) of FIG. 4) for displaying a cylindrical panoramic image while displaying a planar panoramic image (805) through a display (230). Based on the user input, a transition may be made from the state (800) to the state (810).
[0099] In state (810), at least one processor (210) may display an animation (815) through a display (230) that changes from a planar panoramic image (805) to a cylindrical panoramic image. The cylindrical panoramic image may be described as a panoramic image created using the planar panoramic image (805). In the animation (815), as the planar panoramic image (805) changes from the planar panoramic image (805) to the cylindrical panoramic image, the planar panoramic image (805) may be extended into an area where the planar panoramic image (805) is not displayed (or a blank area, or a letterbox area). In the animation (815), as the planar panoramic image (805) changes from the planar panoramic image (805) to the cylindrical panoramic image, the planar panoramic image (805) may have curvature. In the animation (815), the planar panoramic image (805) may be bent or may be bent as the planar panoramic image (805) changes from the planar panoramic image (805) to the cylindrical panoramic image. Based on the end of the animation (815), the electronic device (200) may transition from state (810) to state (820).
[0100] In state (820), at least one processor (210) can identify that the animation (815) has ended. Based on identifying that the animation (815) has ended, at least one processor (210) can display a portion (825) of the panoramic image of the cylinder through the display (230). At least one processor (210) can indicate that a portion (825) of the panoramic image of the cylinder has been displayed in state (820) by displaying an animation (815) that transitions from a panoramic image of a plane (805) to a panoramic image of the cylinder. A user who is aware that a portion (825) of the panoramic image of the cylinder has been displayed can perform a scroll input to view another portion of the panoramic image of the cylinder.
[0101] Referring again to FIG. 7, in operation 710, at least one processor (210) may receive a scroll input while displaying a portion of the panoramic image of the cylinder through the display (230). Based on the scroll input, at least one processor (210) may display another portion of the panoramic image of the cylinder by scrolling the panoramic image of the cylinder. Scrolling the panoramic image of the cylinder is exemplified in the description of FIG. 9.
[0102] FIG. 9 illustrates an example of scrolling a panoramic image of a cylinder according to one embodiment of the present disclosure.
[0103] Referring to FIG. 9, the state (900) can be described as a state in which a portion (825) of a panoramic image (905) of a cylinder is displayed. In the state (900), at least one processor (210) can display a UI (910-1, 910-2) for scroll input via a display (230) together with (or on) the portion (825) of the panoramic image (905) of the cylinder. For example, the UI (910-1, 910-2) can indicate the direction in which the panoramic image (905) of the cylinder can be scrolled. For example, the UI (910-1) can indicate a first direction (e.g., left), and the UI (910-2) can indicate a second direction (e.g., right). At least one processor (210) can indicate the direction in which the panoramic image (905) of the cylinder can be scrolled by displaying the UI (910-1, 910-2).
[0104] At least one processor (210) may receive scroll input while a portion (825) of the panoramic image (905) of the cylinder is displayed. For example, the scroll input may include a sequence of touch inputs. The sequence of touch inputs may include a touch input having a contact point on the portion (825) of the panoramic image (905) of the cylinder, a drag input (or swipe input, or sweeping input, or fling input) that moves the touch input, and an input that releases the touch input after it has been moved. The scroll input may be received through a display (230) (e.g., a touch screen). For example, the scroll input may be received through an external electronic device (e.g., a mouse) connected to the electronic device (200). For example, the scroll input may include user input (e.g., a mouse wheel scroll input) received through the external electronic device (e.g., a mouse).
[0105] The scroll input may include an input that changes the posture (or orientation) of the electronic device (200). The electronic device (200) may further include at least one sensor configured to acquire sensing values according to the change in the posture of the electronic device (200). The at least one sensor may include a gesture sensor, a gyroscope sensor, or an accelerometer sensor. At least one processor (210) may acquire sensing values through at least one sensor while displaying a portion (825) of the panoramic image (905) of the cylinder. For example, the sensing values may vary depending on the posture (or orientation) of the electronic device (200). As the posture (or orientation) of the electronic device (200) changes, the sensing values acquired through at least one sensor may change. At least one processor (210) can receive a scroll input corresponding to a change in the posture (or orientation) of the electronic device (200) based on identifying a change in the sensing values acquired while displaying a portion (825) of the panoramic image (905) of the cylinder.
[0106] At least one processor (210) can scroll a panoramic image (905) of a cylinder based on a scroll input. The panoramic image (905) of a cylinder can be scrolled in a direction indicated by the scroll input. For example, the direction indicated by the scroll input may include the direction of a drag input (or swipe input, or sweeping input, or fling input). For example, the direction indicated by the scroll input may include the direction in which the posture (or orientation) of the electronic device (200) changes. However, embodiments of the present disclosure are not limited thereto. By scrolling the panoramic image (905) of a cylinder, at least one processor (210) can display different parts of the panoramic image (905) of a cylinder through a display (230).
[0107] Sensing values corresponding to changes in the orientation of the electronic device (200) can be mapped to each portion of the panoramic image (905) of the cylinder. For example, the panoramic image of a plane used to generate the panoramic image (905) of the cylinder can be acquired by an electronic device (200) (or an external electronic device) including at least one sensor. The electronic device (200) (or an external electronic device) including at least one sensor can take (or acquire) a plurality of images to acquire the panoramic image of the plane. For example, the at least one sensor may include a gyro sensor. The electronic device (200) (or an external electronic device) including at least one sensor can store the sensing values acquired through the at least one sensor in conjunction with the plurality of images while taking the plurality of images. The electronic device (200) (or an external electronic device) including at least one sensor can acquire the panoramic image of the plane by combining the plurality of images. At least one processor (210) can acquire a sensing value through at least one sensor while displaying a portion (825) of the panoramic image (905) of the cylinder. At least one processor (210) can identify another portion of the panoramic image (905) of the cylinder corresponding to the sensing value acquired while displaying the portion (825) of the panoramic image (905) of the cylinder. At least one processor (210) can display the other portion of the panoramic image (905) of the cylinder corresponding to the sensing value through a display (230).
[0108] At least one processor (210) can provide a panoramic image of a cylinder (905) by displaying portions of the panoramic image of a cylinder (905) through a display (230). Objects included in the panoramic image of a cylinder (905) may be less curved or curved than objects included in the panoramic image of a plane. The panoramic image of a cylinder (905) may contain relatively low (or reduced) distortion compared to the panoramic image of a plane. At least one processor (210) can provide a panoramic image of a cylinder (905) with reduced distortion by displaying portions of the panoramic image of a cylinder (905).
[0109] At least one processor (210) may receive input to enlarge (or reduce) a portion (825) of the panoramic image (905) of the cylinder while the portion (825) of the panoramic image (905) of the cylinder is displayed. Based on the input to enlarge (or reduce) the portion (825) of the panoramic image (905) of the cylinder, the at least one processor (210) may enlarge (or reduce) the portion (825) of the panoramic image (905) of the cylinder, thereby displaying another portion of the panoramic image (905) of the cylinder through the display (230).
[0110] A portion (825) of the panoramic image (905) of the cylinder may be displayed so as to be seen at a position spaced apart by a reference distance from the portion (825) of the panoramic image (905) of the cylinder. Another portion of the panoramic image (905) of the cylinder may be displayed so as to be seen at a position spaced apart by a reference distance from another portion of the panoramic image (905) of the cylinder. A position spaced apart by a reference distance from the portion (825) of the panoramic image (905) of the cylinder may be different from a position spaced apart by a reference distance from another portion of the panoramic image (905) of the cylinder, or may correspond to a position spaced apart by a reference distance from another portion of the panoramic image (905) of the cylinder. Whether a position spaced apart by a reference distance from a part (825) of the panoramic image (905) of the cylinder corresponds to a position spaced apart by a reference distance from another part of the panoramic image (905) of the cylinder may vary depending on the curvature of the panoramic image (905) of the cylinder. A position spaced apart by a reference distance from the panoramic image of the cylinder is exemplified in the description of FIGS. 10a and FIGS. 10b.
[0111] FIGS. 10a and FIGS. 10b illustrate examples of displaying a portion of a panoramic image of a cylinder so as to be viewed at a position spaced apart from the panoramic image of the cylinder by a reference distance according to various embodiments of the present disclosure.
[0112] Referring to FIG. 10a, the state (1000) can be described as a state in which a panoramic image (1005) of a first cylinder according to a first curvature is shown. The first curvature can be described as a relatively large curvature. The first curvature may correspond to a maximum curvature (e.g., 1) or substantially correspond to it. In the state (1000), the first part (1015-1) of the first cylinder panoramic image (1005) can be displayed so as to be seen at a position (1010) spaced apart by a first reference distance (1020) from the first part (1015-1) of the first cylinder panoramic image (1005), and the second part (1015-2) of the first cylinder panoramic image (1005) can be displayed so as to be seen at a position (1010) spaced apart by a first reference distance (1020) from the second part (1015-2) of the first cylinder panoramic image (1005).
[0113] The first reference distance (1020) can be described as the radius of the cylinder mesh used to generate the first cylinder panoramic image (1005). Since the first curvature of the first cylinder panoramic image (1005) corresponds to or substantially corresponds to the maximum curvature, the first curvature of the first cylinder panoramic image (1005) may correspond to or substantially correspond to the curvature of the cylinder mesh used to generate the first cylinder panoramic image (1005). Since the first curvature of the first cylinder panoramic image (1005) corresponds to, or substantially corresponds to, the curvature of the cylinder mesh used to generate the first cylinder panoramic image (1005), and the first reference distance (1020) is the radius of the cylinder mesh used to generate the first cylinder panoramic image (1005), the position (1010) spaced apart by the first reference distance (1020) from the first part (1015-1) of the first cylinder panoramic image (1005) corresponds to, or substantially corresponds to, the position (1010) spaced apart by the first reference distance (1020) from the second part (1015-2) of the first cylinder panoramic image (1005). For example, parts of the panoramic image (1005) of the first cylinder (e.g., the first part (1015-1) of the panoramic image (1005) of the first cylinder and the second part (1015-2) of the panoramic image (1005) of the first cylinder) can be displayed as if seen from the center point of the cylinder mesh.
[0114] Referring to FIG. 10b, the state (1025) can be described as a state in which a panoramic image (1030) of the second cylinder according to the second curvature is shown. The second curvature can be described as a relatively small curvature. The second curvature can be smaller than the first curvature. In state (1025), the first part (1035-1) of the panoramic image (1030) of the second cylinder may be displayed so as to be seen at a position (1045-1) spaced apart by a second reference distance (1040) from the first part (1035-1) of the panoramic image (1030) of the second cylinder, and the second part (1035-2) of the panoramic image (1030) of the second cylinder may be displayed so as to be seen at a position (1045-2) spaced apart by a second reference distance (1040) from the second part (1035-2) of the panoramic image (1030) of the second cylinder.
[0115] The second reference distance (1040) can be described as the radius of the cylinder mesh used to generate the panoramic image (1030) of the second cylinder. Since the second curvature of the panoramic image (1030) of the second cylinder is smaller than the first curvature, the second curvature of the panoramic image (1030) of the second cylinder may be smaller than the curvature (e.g., 1) of the cylinder mesh used to generate the panoramic image (1030) of the second cylinder. Since the second curvature of the second cylinder panoramic image (1030) is smaller than the curvature of the cylinder mesh used to generate the second cylinder panoramic image (1030), and the second reference distance (1040) is the radius of the cylinder mesh used to generate the second cylinder panoramic image (1030), the position (1045-1) spaced apart by the second reference distance (1040) from the first part (1035-1) of the second cylinder panoramic image (1030) may be different from the position (1045-2) spaced apart by the second reference distance (1040) from the second part (1035-2) of the second cylinder panoramic image (1030).
[0116] FIG. 11a is a flowchart illustrating the operations of an electronic device for displaying a lens flare effect on a portion of a panoramic image of a cylinder according to one embodiment of the present disclosure.
[0117] Referring to FIG. 11a, in operation 1100, at least one processor (210) can identify an object representing a light source within a panoramic image of a cylinder. At least one processor (210) can perform object detection on the panoramic image of a cylinder to identify an object representing a light source within the panoramic image of a cylinder. By performing object detection on the panoramic image of a cylinder, at least one processor (210) can identify objects included within the panoramic image of a cylinder. For example, at least one processor (210) can perform object classification on the detected objects. For example, object detection and object classification can be performed using a trained model. By performing object classification, at least one processor (210) can identify an object representing a light source within the panoramic image of a cylinder among the objects included within the panoramic image of a cylinder.
[0118] In operation 1101, at least one processor (210) can convert the position coordinates of the object representing the light source into coordinates in three-dimensional space based on identifying the object (1105) representing the light source within the panoramic image of the cylinder. For example, the coordinates in three-dimensional space of the object representing the light source can be described as coordinates with respect to the center axis of the cylinder mesh used to generate the panoramic image of the cylinder.
[0119] In operation 1102, at least one processor (210) can obtain a lens flare effect by using the coordinates in 3D space of an object representing a light source. A lens flare effect can be described as an artifact in an image that occurs as light from a light source is scattered by the lens system of the camera when an image is obtained through the camera. At least one processor (210) can display a portion of a panoramic image of a cylinder containing an object representing a light source through a display (230). For example, the lens flare effect may differ depending on the position of the object representing the light source within the portion of the panoramic image of the cylinder.
[0120] In operation 1103, at least one processor (210) can display the acquired lens flare effect within a portion of the panoramic image of the cylinder. For example, the lens flare effect may be displayed in conjunction with an object representing a light source within the portion of the panoramic image of the cylinder. The lens flare effect displayed within the portion of the panoramic image of the cylinder is exemplified in the description of FIG. 11b.
[0121] FIG. 11b illustrates an example of a lens flare effect displayed within a portion of a panoramic image of a cylinder according to one embodiment of the present disclosure.
[0122] Referring to FIG. 11b, in a state (1110), at least one processor (210) can display a first part (1115) of a panoramic image of a cylinder through a display (230). For example, an object (1105) representing a light source may not be included in the first part (1115) of the panoramic image of the cylinder. At least one processor (210) can identify whether an object (1105) representing a light source is included in the first part (1115) of the panoramic image of the cylinder. Based on identifying that an object (1105) representing a light source is not included in the first part (1115) of the panoramic image of the cylinder, at least one processor (210) may refrain from (or stop, or skip, or not display) a lens flare effect on the first part (1115) of the panoramic image of the cylinder.
[0123] In state (1120), at least one processor (210) may display a second part (1125) of a panoramic image of a cylinder through a display (230). For example, an object (1105) representing a light source may be included in the second part (1125) of the panoramic image of the cylinder. At least one processor (210) may identify the location of the object (1105) representing a light source within the second part (1125) of the panoramic image of the cylinder to obtain a lens flare effect (1130). The lens flare effect (1130) may be described as an artifact in the image that occurs as light from a light source is scattered by the lens system of the camera when the image is obtained through the camera. The lens flare effect (1130) may be displayed differently depending on the location of the light source. At least one processor (210) can obtain a lens flare effect (1130) based on the position of an object (1105) representing a light source within the second part (1125) of the panoramic image of the cylinder and the 3D spatial coordinates of the light source represented by the object (1105). At least one processor (210) can display the lens flare effect (1130) on the second part (1125) of the panoramic image of the cylinder. For example, the lens flare effect (1130) can be displayed in conjunction with the object (1105). By displaying the lens flare effect (1130) on the second part (1125) of the panoramic image of the cylinder, the second part (1125) of the panoramic image of the cylinder can be made to appear as if it were taken at a position spaced apart by a reference distance from the second part (1125) of the panoramic image of the cylinder.
[0124] FIG. 12 is a block diagram of an electronic device in a network environment according to various embodiments.
[0125] Referring to FIG. 12, in a network environment (1200), an electronic device (1201) may communicate with an electronic device (1202) through a first network (1298) (e.g., a short-range wireless communication network) or with at least one of an electronic device (1204) or a server (1208) through a second network (1299) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (1201) may communicate with the electronic device (1204) through a server (1208). According to one embodiment, the electronic device (1201) may include a processor (1220), memory (1230), input module (1250), sound output module (1255), display module (1260), audio module (1270), sensor module (1276), interface (1277), connection terminal (1278), haptic module (1279), camera module (1280), power management module (1288), battery (1289), communication module (1290), subscriber identification module (1296), or antenna module (1297). In some embodiments, at least one of these components (e.g., connection terminal (1278)) may be omitted from the electronic device (1201), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (1276), camera module (1280), or antenna module (1297)) may be integrated into a single component (e.g., display module (1260)).
[0126] The processor (1220) can, for example, execute software (e.g., program (1240)) to control at least one other component (e.g., hardware or software component) of the electronic device (1201) connected to the processor (1220) and perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (1220) can store commands or data received from other components (e.g., sensor module (1276) or communication module (1290)) in volatile memory (1232), process the commands or data stored in volatile memory (1232), and store the resulting data in non-volatile memory (1234). According to one embodiment, the processor (1220) may include a main processor (1221) (e.g., a central processing unit or an application processor) or an auxiliary processor (1223) that can operate independently or together with it (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device (1201) includes a main processor (1221) and an auxiliary processor (1223), the auxiliary processor (1223) may be configured to use less power than the main processor (1221) or to be specialized for a specified function. The auxiliary processor (1223) may be implemented separately from the main processor (1221) or as part thereof.
[0127] The auxiliary processor (1223) may control at least some of the functions or states associated with at least one component of the electronic device (1201) (e.g., display module (1260), sensor module (1276), or communication module (1290)) on behalf of the main processor (1221) while the main processor (1221) is in an inactive (e.g., sleep) state, or together with the main processor (1221) while the main processor (1221) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (1223) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (1280) or communication module (1290)). According to one embodiment, the auxiliary processor (1223) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (1201) itself where the artificial intelligence model is executed, or through a separate server (e.g., server (1208)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.
[0128] The memory (1230) can store various data used by at least one component of the electronic device (1201) (e.g., processor (1220) or sensor module (1276)). The data may include, for example, software (e.g., program (1240)) and input or output data for related commands. The memory (1230) may include volatile memory (1232) or non-volatile memory (1234).
[0129] The program (1240) may be stored as software in memory (1230) and may include, for example, an operating system (1242), middleware (1244), or an application (1246).
[0130] The input module (1250) can receive commands or data to be used for a component of the electronic device (1201) (e.g., processor (1220)) from outside the electronic device (1201) (e.g., user). The input module (1250) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0131] The sound output module (1255) can output a sound signal to the outside of the electronic device (1201). The sound output module (1255) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.
[0132] The display module (1260) can visually provide information to an external (e.g., user) of the electronic device (1201). The display module (1260) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (1260) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.
[0133] The audio module (1270) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (1270) can acquire sound through the input module (1250) or output sound through the sound output module (1255) or an external electronic device (e.g., electronic device (1202)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (1201).
[0134] The sensor module (1276) can detect the operating state of the electronic device (1201) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (1276) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0135] The interface (1277) may support one or more specified protocols that can be used for the electronic device (1201) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (1202)). According to one embodiment, the interface (1277) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0136] The connection terminal (1278) may include a connector through which the electronic device (1201) can be physically connected to an external electronic device (e.g., electronic device (1202)). According to one embodiment, the connection terminal (1278) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0137] The haptic module (1279) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (1279) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.
[0138] The camera module (1280) can capture still images and video. According to one embodiment, the camera module (1280) may include one or more lenses, image sensors, image signal processors, or flashes.
[0139] The power management module (1288) can manage the power supplied to the electronic device (1201). According to one embodiment, the power management module (1288) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).
[0140] The battery (1289) can supply power to at least one component of the electronic device (1201). According to one embodiment, the battery (1289) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0141] The communication module (1290) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (1201) and an external electronic device (e.g., electronic device (1202), electronic device (1204), or server (1208)), and the performance of communication through the established communication channel. The communication module (1290) may include one or more communication processors that operate independently of the processor (1220) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1290) may include a wireless communication module (1292) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (1294) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (1204) via a first network (1298) (e.g., a short-range communication network such as Bluetooth, Wi-Fi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (1299) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1292) can identify or authenticate the electronic device (1201) within a communication network such as the first network (1298) or the second network (1299) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (1296).
[0142] The wireless communication module (1292) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (1292) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (1292) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beamforming, or large-scale antenna. The wireless communication module (1292) can support various requirements specified in the electronic device (1201), external electronic device (e.g., electronic device (1204)), or network system (e.g., second network (1299)). According to one embodiment, the wireless communication module (1292) can support a Peak data rate (e.g., 12 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mMTC, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) for realizing URLLC.
[0143] An antenna module (1297) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (1297) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (1297) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (1298) or a second network (1299), may be selected from the plurality of antennas, for example, by a communication module (1290). A signal or power may be transmitted or received between the communication module (1290) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (1297).
[0144] According to various embodiments, the antenna module (1297) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.
[0145] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.
[0146] According to one embodiment, commands or data may be transmitted or received between the electronic device (1201) and an external electronic device (1204) through a server (1208) connected to a second network (1299). Each of the external electronic devices (1202, or 1204) may be the same or a different type of device as the electronic device (1201). According to one embodiment, all or part of the operations performed on the electronic device (1201) may be performed on one or more of the external electronic devices (1202, 1204, or 1208). For example, if the electronic device (1201) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (1201) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (1201). The electronic device (1201) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (1201) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (1204) may include an Internet of Things (IoT) device. The server (1208) may be an intelligent server using machine learning and / or neural networks.According to one embodiment, an external electronic device (1204) or server (1208) may be included within the second network (1299). The electronic device (1201) may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0147] The electronic device according to the various embodiments disclosed in this document may be of various forms. The electronic device may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a consumer electronics device. The electronic device according to the embodiments of this document is not limited to the devices described above.
[0148] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of said items unless the relevant context clearly indicates otherwise. In this document, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B or C," "at least one of A, B and C," and "at least one of A, B, or C" may each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as "coupled" or "connected" to another (e.g., 2nd) component, with or without the terms "functionally" or "communicationly," it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.
[0149] The term “module” as used in the various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be a component formed integrally, or a minimum unit of said component or a part thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0150] Various embodiments of the present document may be implemented as software (e.g., program (2040)) comprising one or more instructions stored in a storage medium (e.g., internal memory (2036) or external memory (2038)) readable by a machine (e.g., electronic device (2001)). For example, a processor (e.g., processor (2020)) of the machine (e.g., electronic device (2001)) may call at least one of the one or more instructions stored from the storage medium and execute it. This enables the machine to be operated to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, 'non-transient' simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and this term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.
[0151] According to one embodiment, the method according to the various embodiments disclosed herein may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
[0152] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
[0153] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure pertains.
[0154] The electronic device described above (e.g., the electronic device (200) of FIG. 2) may include at least one processor (e.g., at least one processor (210) of FIG. 2) comprising a processing circuit, a display (e.g., the display (230) of FIG. 2), and a memory (e.g., the memory (220) of FIG. 2) comprising one or more storage media configured to store one or more programs configured to be executed individually or collectively by the at least one processor. The one or more programs may include instructions that cause the electronic device to acquire a first panoramic image (e.g., the planar panoramic image (405) of FIG. 4) corresponding to a planar panoramic image. The one or more programs may include instructions that cause the electronic device to detect an event for converting the first panoramic image to a second panoramic image. The above one or more programs may include instructions that cause the electronic device to obtain a depth value of the first panoramic image based on the detection. The above one or more programs may include instructions that cause the electronic device to obtain a curvature for generating the second panoramic image based on the depth value of the first panoramic image. The above one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature using the first panoramic image. The above one or more programs may include instructions that cause the electronic device to display a portion of the second panoramic image through the display.
[0155] For example, the depth value can be obtained by identifying depth values for objects included in the first panoramic image and obtaining the average value of the depth values as the depth value of the first panoramic image.
[0156] For example, the one or more programs may include instructions that cause the electronic device to determine a reference object among the objects included in the first panoramic image based on the detection. The one or more programs may include instructions that cause the electronic device to identify a depth value for the reference object. The one or more programs may include instructions that cause the electronic device to obtain the depth value for the reference object as the depth value of the first panoramic image.
[0157] For example, the curvature for generating the second panoramic image may be inversely proportional to the depth value of the first panoramic image.
[0158] For example, the second panoramic image can be generated by projecting the first panoramic image onto at least a portion of a cylindrical mesh having a radius according to the curvature.
[0159] For example, the one or more programs may include instructions that cause the electronic device to identify the vertical field of view (FOV) of the first panoramic image. The one or more programs may include instructions that cause the electronic device to obtain a cylindrical mesh having a radius according to the vertical FOV. The one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature based on projecting the first panoramic image onto a portion of the cylindrical mesh.
[0160] For example, the above one or more programs may include instructions that cause the electronic device to acquire first vector data for the first panoramic image and second vector data for the second panoramic image according to the maximum curvature. The above one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature by applying a first weight inversely proportional to the curvature to the first vector data and a second weight proportional to the curvature to the second vector data.
[0161] For example, the one or more programs may include instructions that cause the electronic device to identify the vertical field of view (FOV) of the first panoramic image. The one or more programs may include instructions that cause the electronic device to obtain a reference distance for the second panoramic image based on the vertical FOV. The one or more programs may include instructions that cause the electronic device to display the portion of the second panoramic image through the display so that the portion of the second panoramic image is shown at a position spaced apart from the portion of the second panoramic image by the reference distance.
[0162] For example, the one or more programs may include instructions that cause the electronic device to receive user input for displaying the second panoramic image while displaying the first panoramic image through the display. The one or more programs may include instructions that cause the electronic device to detect the event based on the user input.
[0163] For example, the one or more programs may include instructions that cause the electronic device to display an animation in which the first panoramic image is progressively changed to the second panoramic image through the display. The one or more programs may include instructions that cause the electronic device to display the portion of the second panoramic image through the display based on identifying when the animation ends.
[0164] For example, the one or more programs may include instructions that cause the electronic device to receive scroll input while displaying the portion of the second panoramic image. The one or more programs may include instructions that cause the electronic device to display another portion of the second panoramic image through the display based on the scroll input.
[0165] For example, the one or more programs may include instructions that cause the electronic device to determine the portion of the second panoramic image by matching the height of the second panoramic image to the height of the display area of the display. The one or more programs may include instructions that cause the electronic device to display the portion of the second panoramic image through the display.
[0166] For example, the electronic device may further include at least one sensor configured to acquire sensing values according to a change in the orientation of the electronic device. The one or more programs may include instructions that cause the electronic device to acquire a sensing value through the at least one sensor while displaying the portion of the second panoramic image. The one or more programs may include instructions that cause the electronic device to display another portion of the second panoramic image corresponding to the sensing value through the display.
[0167] For example, the one or more programs may include instructions that cause the electronic device to identify an object representing a light source within the second panoramic image. The one or more programs may include instructions that cause the electronic device to display a lens flare effect in association with the object on the portion of the second panoramic image based on the position of the object within the portion of the second panoramic image.
[0168] The above method as described above may be performed within an electronic device including a display. The method may include an operation of acquiring a first panoramic image corresponding to a planar panoramic image. The method may include an operation of detecting an event for converting the first panoramic image into a second panoramic image. The method may include an operation of acquiring a depth value of the first panoramic image based on the detection. The method may include an operation of acquiring a curvature for generating the second panoramic image using the depth value of the first panoramic image. The method may include an operation of generating the second panoramic image according to the curvature based on the first panoramic image. The method may include an operation of displaying a portion of the second panoramic image through the display.
[0169] For example, the depth value can be obtained by identifying depth values for objects included in the first panoramic image and obtaining the average value of the depth values as the depth value of the first panoramic image.
[0170] For example, the above method may include an operation of determining a reference object among the objects included in the first panoramic image based on the detection. The above method may include an operation of identifying a depth value for the reference object. The above method may include an operation of obtaining the depth value for the reference object as the depth value of the first panoramic image.
[0171] For example, the curvature for generating the second panoramic image may be inversely proportional to the depth value of the first panoramic image.
[0172] For example, the second panoramic image can be generated by projecting the first panoramic image onto at least a portion of a cylindrical mesh having a radius according to the curvature.
[0173] For example, the above method may include an operation of identifying a vertical field of view (FOV) of the first panoramic image. The above method may include an operation of obtaining a cylindrical mesh having a radius according to the vertical FOV. The above method may include an operation of generating a second panoramic image according to the curvature based on projecting the first panoramic image onto a portion of the cylindrical mesh.
[0174] For example, the above method may include the operation of obtaining first vector data for the first panoramic image and second vector data for the second panoramic image according to the maximum curvature. The above method may include the operation of generating the second panoramic image according to the curvature by applying a first weight inversely proportional to the curvature to the first vector data and a second weight proportional to the curvature to the second vector data.
[0175] For example, the above method may include an operation of identifying a vertical field of view (FOV) of the first panoramic image. The above method may include an operation of obtaining a reference distance for the second panoramic image based on the vertical FOV. The above method may include an operation of displaying the portion of the second panoramic image through the display so that the portion of the second panoramic image is shown at a position spaced apart from the portion of the second panoramic image by the reference distance.
[0176] For example, the above method may include an operation of receiving user input for displaying the second panoramic image while displaying the first panoramic image through the display. The above method may include an operation of detecting the event based on the user input.
[0177] For example, the above method may include an operation of displaying an animation through the display in which the first panoramic image is gradually changed to the second panoramic image. The above method may include an operation of displaying the portion of the second panoramic image through the display based on identifying when the animation ends.
[0178] For example, the method may include an operation of receiving a scroll input while displaying the portion of the second panoramic image. The method may include an operation of displaying another portion of the second panoramic image through the display based on the scroll input.
[0179] For example, the above method may include an operation of determining the portion of the second panoramic image by matching the height of the second panoramic image to the height of the display area of the display. The above method may include an operation of displaying the portion of the second panoramic image through the display.
[0180] For example, the electronic device may further include at least one sensor configured to acquire sensing values according to a change in the orientation of the electronic device. The method may include an operation of acquiring a sensing value through the at least one sensor while displaying the portion of the second panoramic image. The method may include an operation of displaying another portion of the second panoramic image corresponding to the sensing value through the display.
[0181] For example, the above method may include an operation of identifying an object representing a light source within the second panoramic image. The above method may include an operation of displaying a lens flare effect in conjunction with the object on the portion of the second panoramic image based on the position of the object within the portion of the second panoramic image.
[0182] The above-described non-transient computer-readable storage medium may store one or more programs. The one or more programs may include instructions that cause the electronic device to acquire a first panoramic image corresponding to a planar panoramic image when executed by the electronic device including a display. The one or more programs may include instructions that cause the electronic device to detect an event for converting the first panoramic image to a second panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to acquire a depth value of the first panoramic image based on the detection when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to acquire a curvature for generating the second panoramic image using the depth value of the first panoramic image when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature based on the first panoramic image when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to display a portion of the second panoramic image through the display when executed by the electronic device.
[0183] For example, the depth value can be obtained by identifying depth values for objects included in the first panoramic image and obtaining the average value of the depth values as the depth value of the first panoramic image.
[0184] For example, the one or more programs may include instructions that cause the electronic device to determine a reference object among the objects included in the first panoramic image based on the detection when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to identify a depth value for the reference object when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to obtain the depth value for the reference object as the depth value of the first panoramic image when executed by the electronic device.
[0185] For example, the curvature for generating the second panoramic image may be inversely proportional to the depth value of the first panoramic image.
[0186] For example, the second panoramic image can be generated by projecting the first panoramic image onto at least a portion of a cylindrical mesh having a radius according to the curvature.
[0187] For example, the one or more programs may include instructions that cause the electronic device to identify the vertical field of view (FOV) of the first panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to obtain a cylindrical mesh having a radius corresponding to the vertical FOV when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to generate the second panoramic image corresponding to the curvature based on projecting the first panoramic image onto a portion of the cylindrical mesh when executed by the electronic device.
[0188] For example, the above one or more programs may include instructions that cause the electronic device to acquire first vector data for the first panoramic image and second vector data for the second panoramic image according to the maximum curvature when executed by the electronic device. The above one or more programs may include instructions that cause the electronic device to generate the second panoramic image according to the curvature by applying a first weight inversely proportional to the curvature to the first vector data and a second weight proportional to the curvature to the second vector data when executed by the electronic device.
[0189] For example, the one or more programs may include instructions that cause the electronic device to identify the vertical field of view (FOV) of the first panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to obtain a reference distance for the second panoramic image based on the vertical FOV when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to display the portion of the second panoramic image through the display so that the portion of the second panoramic image is shown at a position spaced apart from the portion of the second panoramic image by the reference distance when executed by the electronic device.
[0190] For example, the one or more programs may include instructions that cause the electronic device to receive user input for displaying the second panoramic image while displaying the first panoramic image through the display when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to detect the event based on the user input when executed by the electronic device.
[0191] For example, the one or more programs may include instructions that cause the electronic device to display, through the display, an animation in which the first panoramic image is progressively changed to the second panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to display the portion of the second panoramic image through the display based on identifying when the animation ends when executed by the electronic device.
[0192] For example, the one or more programs may include instructions that cause the electronic device to receive scroll input while displaying the portion of the second panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to display another portion of the second panoramic image through the display based on the scroll input when executed by the electronic device.
[0193] For example, the one or more programs may include instructions that cause the electronic device to determine the portion of the second panoramic image by matching the height of the second panoramic image to the height of the display area of the display when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to display the portion of the second panoramic image through the display when executed by the electronic device.
[0194] For example, the electronic device may further include at least one sensor configured to acquire sensing values according to a change in the orientation of the electronic device. The one or more programs may include instructions that cause the electronic device to acquire a sensing value through the at least one sensor while displaying the portion of the second panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to display another portion of the second panoramic image corresponding to the sensing value through the display when executed by the electronic device.
[0195] For example, the one or more programs may include instructions that cause the electronic device to identify an object representing a light source within the second panoramic image when executed by the electronic device. The one or more programs may include instructions that cause the electronic device to display a lens flare effect in association with the object on the portion of the second panoramic image based on the position of the object within the portion of the second panoramic image when executed by the electronic device.
[0196] It will be apparent that the various embodiments of the present disclosure according to the claims and descriptions in this specification may be realized in the form of hardware, software, or a combination of hardware and software.
[0197] Such software may be stored on a non-transient computer-readable storage medium. The non-transient computer-readable storage medium stores one or more computer programs (software modules), and one or more computer programs include computer-executable instructions, and the instructions cause an electronic device to perform the method of the present disclosure when executed individually or collectively by one or more processors of an electronic device.
[0198] Such software may be stored in the form of a volatile or non-volatile storage device (e.g., a storage device such as ROM (read-only memory) (regardless of whether it is erasable or rewritable)) or memory (e.g., RAM (random access memory), memory chip, device, or integrated circuit), or an optically or magnetically readable medium (e.g., CD (compact disk), DVD (digital versatile disc), magnetic disk, or magnetic tape, etc.). It will be understood that the storage device and storage medium are various embodiments of a non-transient machine-readable storage device suitable for storing computer programs or computer programs that include instructions for implementing various embodiments of the present disclosure at runtime. Accordingly, various embodiments provide a program including code for implementing the device or method claimed in one of the claims of this specification and a non-transient machine-readable storage device for storing such program. Although the present disclosure has been illustrated and described with reference to various embodiments, it will be understood by those skilled in the art that various changes in form and details are possible without departing from the spirit and scope of the present disclosure as defined by the appended claims and equivalents.
Claims
1. In an electronic device, At least one processor including a processing circuit; Display; and Memory comprising one or more programs configured to be executed individually or collectively by at least one processor, and including one or more storage media, The above one or more programs are: Acquire a first panoramic image corresponding to a planar panoramic image; Detecting an event to convert the first panoramic image into a second panoramic image; Based on the above detection, the depth value of the first panoramic image is obtained; Using the depth value of the first panoramic image, a curvature for generating the second panoramic image is obtained; Based on the first panoramic image above, the second panoramic image according to the curvature is generated; and To display a portion of the second panoramic image through the above display, Instructions including those that cause the above electronic device Electronic device.
2. In Claim 1, The above depth value is: Identify depth values for objects included in the first panoramic image; and The average value of the depth values is obtained as the depth value of the first panoramic image, Electronic device.
3. In Claim 1, The above one or more programs are: Based on the above detection, a reference object is determined among the objects included in the first panoramic image; Identify the depth value for the above reference object; and To obtain the depth value for the above reference object as the depth value of the first panoramic image, Instructions including those that cause the above electronic device Electronic device.
4. In Claim 1, The curvature for generating the second panoramic image is, Inversely proportional to the depth value of the first panoramic image, Electronic device.
5. In Claim 1, The second panoramic image above is, A first panoramic image is generated by projecting the above-mentioned first panoramic image onto at least a portion of a cylindrical mesh having a radius according to the curvature, Electronic device.
6. In Claim 1, The above one or more programs are: Identify the vertical field of view (FOV) of the first panoramic image; Obtain a cylindrical mesh having a radius according to the above vertical FOV; and Based on projecting the first panoramic image onto a portion of the cylindrical mesh, the second panoramic image according to the curvature is generated. Instructions including those that cause the above electronic device Electronic device.
7. In Claim 1, The above one or more programs are: Acquiring first vector data for the first panoramic image and second vector data for the second panoramic image according to the maximum curvature; and By applying a first weight inversely proportional to the curvature to the first vector data and a second weight proportional to the curvature to the second vector data, the second panoramic image according to the curvature is generated. Instructions including those that cause the above electronic device Electronic device.
8. In Claim 1, The above one or more programs are: Identifying the vertical field of view (FOV) of the first panoramic image; Based on the above vertical FOV, a reference distance for the second panoramic image is obtained; and To display the portion of the second panoramic image through the display so that the portion of the second panoramic image is shown at a position spaced apart from the portion of the second panoramic image by the reference distance, Instructions including those that cause the above electronic device Electronic device.
9. In Claim 1, The above one or more programs are: While displaying the first panoramic image through the display, receiving user input to display the second panoramic image; and To detect the event based on the above user input, Instructions including those that cause the above electronic device Electronic device.
10. In Claim 9, The above one or more programs are: Through the above display, an animation is displayed in which the first panoramic image is gradually changed to the second panoramic image; and Based on identifying when the above animation ends, to display the above portion of the second panoramic image through the display, Instructions including those that cause the above electronic device Electronic device.
11. In Claim 1, The above one or more programs are: While displaying the portion of the second panoramic image above, receive scroll input; and Based on the above scroll input, to display another part of the second panoramic image through the display, Instructions including those that cause the above electronic device Electronic device.
12. In Claim 1, The above one or more programs are: Determining the portion of the second panoramic image by matching the height of the second panoramic image to the height of the display area of the display; and To display the above portion of the second panoramic image through the above display, Instructions including those that cause the above electronic device Electronic device.
13. In Claim 1, It further includes at least one sensor configured to acquire sensing values according to a change in the posture of the electronic device, and The above one or more programs are: While displaying the portion of the second panoramic image, a sensing value is acquired through the at least one sensor; and To display another part of the second panoramic image corresponding to the sensing value through the above display, Instructions including those that cause the above electronic device Electronic device.
14. A method executed in an electronic device including a display, wherein the method comprises: The operation of acquiring a first panoramic image corresponding to a planar panoramic image; An operation to detect an event for converting the first panoramic image into a second panoramic image; An operation to obtain a depth value of the first panoramic image based on the above detection; An operation of obtaining a curvature for generating the second panoramic image using the depth value of the first panoramic image; The operation of generating the second panoramic image according to the curvature based on the first panoramic image; and The operation of displaying a portion of the second panoramic image through the above display, method.
15. In a non-transient computer-readable storage medium storing one or more programs, When the above one or more programs are executed by an electronic device having a display: Acquire a first panoramic image corresponding to a planar panoramic image; Detecting an event to convert the first panoramic image into a second panoramic image; Based on the above detection, the depth value of the first panoramic image is obtained; Using the depth value of the first panoramic image, a curvature for generating the second panoramic image is obtained; Based on the first panoramic image above, the second panoramic image according to the curvature is generated; and To display a portion of the second panoramic image through the above display, Including instructions that cause the above electronic device, Non-transient computer-readable storage media.