Patent Description:
With a rapid development of panoramic video processing technologies, there is an urgent need to provide a method for correcting a panoramic rolling shutter phenomenon. The method proposed in the related art needs to cut an image and cannot guarantee the integrity of the image.

<CIT> discloses an apparatus and methods for rolling shutter compensation for multi-camera systems.

Aspects of the invention are defined in the appended claims.

Other objects, features and advantages of the present invention will become more apparent from the following detailed description when read in conjunction with the accompanying drawings.

In order to further clarify the technical proposals for embodiments of the present invention, the drawings used to describe the embodiments of the present invention will be briefly described below.

The present invention, as defined in the appended claims, provides a method, an apparatus, and a computer-readable recording medium for correcting a rolling shutter phenomenon, and can eliminate a rolling shutter phenomenon in an image, under the assumption of assuring the integrity of the image.

By an "embodiment" referred to herein, it is meant that certain features, structures, or characteristics associated with the embodiment are included in at least one embodiment of the invention. Accordingly, the term "embodiment" which appears throughout this specification does not necessarily refer to the same embodiment. These particular features, structures, or characteristics may optionally be combined in one or more embodiments in a suitable manner.

In the various embodiments of the present invention, the number of each step below does not mean an actual order of execution. The order in which each step is performed depends on its function and intrinsic logic and does not limit in any way the process of implementing the embodiments of the present invention.

<FIG> is a flow diagram of a rolling shutter phenomenon correcting method according to the embodiment of the present invention, including the following steps, as depicted in <FIG>:.

The image proces7sing parameters include gyro data of the photographing device. The gyro data may include a time stamp, and the photographing device is at angular velocities on three axes of X, Y, and Z.

In order to obtain a satisfactory correcting effect, in the embodiment of the present invention, the image processing parameters further include the following:
A time stamp of each frame image produced by the photographing device, a rolling shutter phenomenon time of the photographing device, a width and a height of a single fish-eye image, and an aperture value of the photographing device.

In the embodiment of the present invention, the rolling shutter phenomenon time of the photographing device can be, for example, <NUM>. In an example where the camera is the photographing device, the aperture value can be set to <NUM>°.

Step <NUM> is a step of calculating rolling shutter phenomenon correcting parameters based on the image processing parameters.

In the embodiment of the present invention, a main indicator of the rolling shutter phenomenon correcting parameter is a rolling shutter phenomenon rotation angle. In this step, as depicted in <FIG>, the rolling shutter phenomenon correcting parameters7 can be calculated by the following formulas.

Step <NUM> is a step of obtaining the time at the exposure center (the time at midpoint of exposure) with respect to each frame image based on the time stamp of the frame image generated by the photographing device.

In the embodiment of the present invention, the time stamp of each frame image obtained can be the time at the exposure center with respect to the frame image.

Step <NUM> is a step of determining the start time of the rolling shutter phenomenon with respect to the frame image.

In this step, the start time of the rolling shutter phenomenon with respect to the frame image is determined by the following equation (<NUM>).

In the equation, RSTstart denotes the start time of the rolling shutter phenomenon with respect to the frame image, ECT denotes the time at the exposure center with respect to the frame image, and rst denotes the rolling shutter phenomenon time with respect to the photographing device.

Step <NUM> is a step of determining the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to each frame image based on the time at the exposure center with respect to the frame image and the start time of the rolling shutter phenomenon.

In this step, the occurrence time of the rolling shutter phenomenon with respect to each scan line with respect to the frame image is determined by the following equation (<NUM>).

In the equation, rstrow_i denotes the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image, RSTstart denotes the start time of the rolling shutter phenomenon with respect to the frame image, rst denotes the rolling shutter phenomenon time with respect to the photographing device, row_i denotes the i-th scan line of the frame image, and h denotes the total number of scan lines of the frame image.

Step <NUM> is a step of determining target gyro data corresponding to the scan line based on the gyro data of the photographing device, the time at the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line.

In this step, one or more sets of gyro data may be obtained. The gyro data obtained within the corresponding period from the time at the exposure center with respect to each frame image to the time of occurrence of the rolling shutter phenomenon with respect to the scan line can be referred to as target gyro data. Thus, each scan line can correspond to one or more sets of gyro data.

Step <NUM> is a step of calculating a target rolling shutter phenomenon rotation angle of the scan line based on the target gyro data, the time at the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line.

In this step, the target period is sectioned into at least two subperiods using the target gyro data. The length of the target period is determined by the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image and the time at the exposure center with respect to the frame image. Thereafter, the lengths of the times of the at least two subperiods and the sets of first gyro data corresponding to the at least two subperiods are respectively multiplied to obtain at least two products. The first gyro data is data included in the target gyro data or reference gyro data. Thereafter, the products obtained are added to obtain a target rolling shutter phenomenon rotation angle with respect to the scan line.

As depicted in <FIG>, it is assumed that there are two sets of gyro data, g1 and g2 in the time t between rstrow_i and ECT. The time of g1 is before the time of g2. Then g1 and g2 are used to section the time t into three subperiods. Those subperiods are: rstrow_i through t1; t1 through t2; and t2 through ECT. The lengths of these three subperiods are △t1, △t2, and △t3, respectively.

Then, the target rolling shutter phenomenon rotation angle is calculated by the following equation (<NUM>): <MAT>.

Alternatively, it is also possible to calculate the target rolling shutter phenomenon rotation angle by the following equation (<NUM>): <MAT>.

In the equations, g0 and g3 denote reference gyro data. For example, g0 may be the gyro data within a period before the period t, and g3 may be the gyro data within a period after the period t.

On the basis of the above-described data, in this step, it is also possible to obtain a correcting reference parameter after obtaining the target rolling shutter phenomenon rotation angle in order to further accurately obtain the target rolling shutter phenomenon rotation angle. The correcting reference parameter includes information of the lens to be corrected and a correcting direction. In this regard, information of a photographing head to be corrected may include information of a front photographing head and information of a rear photographing head; and the correcting direction may be a pitch, roll, yaw, or the like. Thereafter, a final target rolling shutter phenomenon rotation angle corresponding to the target rolling shutter phenomenon rotation angle is determined based on correspondence relationships between the information of the lens to be corrected; the correcting direction; and the angle.

Table <NUM> shows the correspondence relationships between the information of the lens to be corrected; the correcting direction; and the angle.

Based on Table <NUM> above, the calculated target rolling shutter phenomenon rotation angle is expressed as Angle. In a case where the lens to be corrected is a front photographing head and the correcting direction is pitch, the final target rolling shutter phenomenon rotation angle is Angle; and in a case where the lens to be corrected is the front photographing head and the correcting direction is yaw, the final target rolling shutter phenomenon rotation angle is -Angle.

Step <NUM> is a step of correcting the rolling shutter phenomenon with respect to the double fish-eye image in a spherical-coordinate system using the rolling shutter phenomenon correcting parameters.

In the embodiment of the present invention, the main idea of rolling shutter phenomenon correction is to convert fish-eye image coordinates into three-dimensional coordinates and then correct a distortion by performing rotation in a three-dimensional space, that is, to correct a rolling shutter phenomenon in a spherical-coordinate system. Specifically, in this step, as depicted in <FIG>, the correction can be implemented by the following method:.

In addition, on the basis of the above-described embodiment, in a case where the unit spherical coordinates do not fit the photographing device, the unit spherical coordinates may be rotated by a first angle along a first coordinate axis after step <NUM> to obtain first unit spherical coordinates. For example, the unit spherical coordinates can be rotated <NUM> degrees along the Y-axis. In step <NUM>, specifically, the first unit spherical coordinates are multiplied by the rotation matrix to obtain corrected first unit spherical coordinates. Correspondingly, after obtaining the corrected first unit spherical coordinates, the corrected first unit spherical coordinates are rotated in the reverse direction by the first angle along the first coordinate axis. In the example, the unit spherical coordinates can be rotated in the reverse direction by <NUM> degrees along the Y-axis. In step <NUM>, specifically, the corrected first unit spherical coordinates after the rotation in the reverse direction are converted to 2D fish-eye coordinates.

In the example where the unit spherical coordinates are rotated by <NUM> degrees along the Y axis, the unit spherical coordinates can be rotated by the first angle along the first coordinate axis to obtain the first unit spherical coordinates by the following equation: <MAT>.

In the equation, coor3drotated denotes the first unit spherical coordinates, and coor3d denotes the unit spherical coordinates.

Then, the first unit spherical coordinates and the rotation matrix are multiplied by the following equation to obtain the corrected first unit spherical coordinates: <MAT>.

In the equation, coor3dRSC denotes the corrected first spherical coordinates, R denotes the rotation matrix, and coor3drotated denotes the unit spherical coordinates.

Specifically, the corrected first unit spherical coordinates are rotated in the reverse direction by the first angle along the first coordinate axis by the following equation: <MAT>.

In the equation, coor3dRSCrotated denotes the corrected first unit spherical coordinates after being rotated in the reverse direction, and coor3dRSC denotes the corrected first unit spherical coordinates.

<FIG> shows an example of rolling shutter phenomenon correction. With reference to <FIG>, in a two-dimensional fish-eye image, points need to be on a straight line, however, due to a presence of a rolling shutter phenomenon, the points are on a curve, as depicted in <FIG>. According to the rolling shutter phenomenon correcting method, the two-dimensional fish-eye image is converted into a three-dimensional unit sphere image, then the three-dimensional unit sphere image is rotated to align these points, and then, the three-dimensional unit sphere image thus processed is converted to be returned to a two-dimensional fish-eye image.

In the embodiment of the present invention, the rolling shutter phenomenon correcting parameters are calculated by the use of the image processing parameters including the gyro data of the photographing device, and the rolling shutter phenomenon correction is performed by using the rolling shutter phenomenon correcting parameters on the obtained double fish-eye image. Because the method according to the embodiment of the present invention does not require cutting of an image, the rolling shutter phenomenon in the image can be eliminated under the assumption of assuring the integrity of the image in comparison to the related art.

In addition, because, according to the embodiment of the present invention, a two-dimensional image is converted into a three-dimensional unit sphere image, it is not necessary to correct the rolling shutter phenomenon using the intrinsic parameters, in comparison to the calculation method of the related art. Because a three-dimensional unit sphere image is rotated, the method of the embodiment of the present invention can be used to ultimately generate a complete two-dimensional image, in comparison to the warping calculation method in the related art.

In an experiment, rolling shutter phenomenon correction rates were calculated for a large number of images in different directions and different resolutions, the rates were all greater than zero. Accordingly, it can be seen that the rolling shutter phenomenon correction can be implemented very satisfactorily according to the method of the embodiment of the present invention.

<FIG> is a structural diagram of a rolling shutter phenomenon correcting apparatus according to an embodiment of the present invention. As depicted in <FIG>, the rolling shutter phenomenon correcting apparatus <NUM> includes a first obtaining module <NUM> used to obtain a double fish-eye image to be processed using a photographing device, a second obtaining module <NUM> used to obtain image processing parameters including gyro data of the photographing device, a calculating module <NUM> used to calculate rolling shutter phenomenon correcting parameters based on the image processing parameters, and a correcting module <NUM> used to correct the rolling shutter phenomenon with respect to the double fish-eye image in a spherical-coordinate system using the rolling shutter phenomenon correcting parameters.

Optionally, in the embodiment of the present invention, the image processing parameters include a time stamp of each frame image produced by the photographing device, a rolling shutter phenomenon time of the photographing device, a width and a height of a single fish-eye image, and an aperture value of the photographing device.

Optionally, as depicted in <FIG>, the calculating module <NUM> includes an obtaining submodule <NUM>, which obtains the time at the exposure center with respect to each frame image based on the time stamp of the frame image generated by the photographing device, a first determining submodule <NUM> for determining the start time of the rolling shutter phenomenon with respect to the frame image, a second determining submodule <NUM> for determining the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image based on the time at the exposure center and the start time of the rolling shutter phenomenon with respect to the frame image, a third determining submodule <NUM> for determining target gyro data corresponding the scan line based on the gyro data of the scanning device, the time of the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line, a calculating submodule <NUM> for calculating a target rolling shutter phenomenon rotation angle with respect to the scan line based on the target gyro data, the time at the exposure center time with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon time with respect to the scan line.

Optionally, the first determining submodule <NUM> is used to determine the start time of the rolling shutter phenomenon with respect to the frame image by, specifically, the following equation: <MAT>.

In the equation, RSTstart denotes the start time of the rolling shutter phenomenon with respect to the frame image, ECT denotes the time at the exposure center with respect to the frame image, and rst denotes the rolling shutter phenomenon time of the photographing device occurs.

Optionally, the second determining submodule <NUM> is used to determine the time of occurrence of the rolling shutter phenomenon with respect to each scan line of the frame image by, specifically, the following equation: <MAT>.

In the equation, rstrow_i denotes the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image, RSTstart denotes the start time of the rolling shutter phenomenon with respect to the frame image, rst denotes the rolling shutter phenomenon time with respect to the photographing device, row_i denotes the i-th scan line with respect to the frame image, and h denotes the total number of scan lines of the frame image.

Optionally, as illustrated in <FIG>, the calculating submodule <NUM> may include a sectioning unit <NUM> used to section a target period into at least two subperiods using the target gyro data, wherein the length of the target period is determined by the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image and the time at the exposure center with respect to the frame image; a first obtaining unit <NUM> used to multiply the lengths of the times of the at least two subperiods and first gyro data corresponding to the at least two subperiods, respectively, to obtain at least two products, the first gyro data being data included in the target gyro data or reference gyro data; and a second obtaining unit <NUM> used to add the products obtained to obtain a target rolling shutter phenomenon rotation angle with respect to the scan line.

Optionally, as depicted in <FIG>, the calculating submodule <NUM> may include a third obtaining unit <NUM> used to obtain correcting reference parameters including information of the lens to be corrected and a correcting direction, and a determination unit <NUM> used to determine a final target rolling shutter phenomenon rotation angle corresponding to the target rolling shutter phenomenon rotation angle based on correspondence relationships between the information of the lens to be corrected; the correcting direction; and the angle.

Optionally, as depicted in <FIG>, the correcting module <NUM> may include a first obtaining unit <NUM> used to obtain a final target rolling shutter phenomenon rotation angle with respect to each scan line with respect to the i-th frame image; a second obtaining unit <NUM> used to convert the final target rolling shutter phenomenon rotation angle into a rotation matrix; a third obtaining unit <NUM> used to cut the double fish-eye image into single fish-eye images and convert target single fish-eye images into unit coordinates based on the aperture value of the photographing device to obtain unit coordinates of the target single fish-eye images, which are single frame images included in the single fish-eye images; a fourth obtaining unit <NUM> used to multiply the unit spherical coordinates and the rotation matrix to obtain corrected unit spherical coordinates; a first converting unit <NUM> used to convert the corrected unit spherical coordinates into 2D fish-eye coordinates; a generating unit <NUM> used to generate corrected target single fish-eye images using the 2D fish-eye coordinates; and a correcting unit <NUM> used to obtain a corrected double fish-eye image using the corrected single fish-eye images.

Optionally, as depicted in <FIG>, the correcting module <NUM> may include a first rotating module <NUM> used to rotate the unit spherical coordinates by a first angle along a first coordinate axis to obtain first unit spherical coordinates. At this time, the fourth obtaining unit <NUM> is specifically used to multiply the first unit spherical coordinates by the rotation matrix to obtain corrected first unit spherical coordinates. The correcting module <NUM> may further include a second rotating module <NUM> used to rotate in the reverse direction the corrected first unit spherical coordinates by the first angle along the first coordinate axis. At this time, the first converting unit <NUM> is specifically used to convert the corrected first unit spherical coordinates, after being rotated in the reverse direction, to 2D fish-eye coordinates.

Because the apparatus according to the embodiment of the present invention is capable of implementing the embodiment of the above-described method, and the implementing principles and the technical effects are similar, further description of the embodiment of the apparatus is omitted.

<FIG> is a hardware structure block diagram of the rolling shutter phenomenon correcting apparatus according to the embodiment of the present invention. As depicted in <FIG>, the rolling shutter phenomenon correcting apparatus <NUM> includes a processor <NUM>, and a memory <NUM> in which computer program instructions are stored.

When the computer program instructions are executed by the processor <NUM>, the processor <NUM> performs obtaining a double fish-eye image to be processed using a photographing device; obtaining an image processing parameter including gyro data of the photographing device; calculating a rolling shutter phenomenon correcting parameter based on the image processing parameter; correcting the rolling shutter phenomenon with respect to the double fish-eye image in a spherical-coordinate system using the rolling shutter phenomenon correcting parameter.

Further, as depicted in <FIG>, the rolling shutter phenomenon correcting apparatus <NUM> may include a network interface <NUM>, an input device <NUM>, a hard disk <NUM>, and a display device <NUM>.

The above-mentioned interface and devices are connected to each other by a bus architecture. The bus architecture may include any number of interconnecting buses and bridges. In more detail, one or more central processors (CPUs) as the processor <NUM> and various circuits of one or more memories as the memory <NUM> are connected together. The bus architecture may be also used to connect a variety of other circuitry, such as peripherals, voltage regulators, or power management circuitry. It is understood that the bus architecture is for implementing connection and communication between these elements. The bus architecture includes a power bus, a control bus, and a status signal bus as well as a data bus, all of which are known in the art and are not described in detail herein.

The network interface <NUM> can be connected to a network (e.g., the Internet, a local area network, etc.), receive information from the network, and store the received contents in the hard disk <NUM>.

The input device <NUM> can receive various instructions input by an operator and transmit the instructions to the processor <NUM> for execution. The input device <NUM> may include a keyboard or click device (e.g., a mouse, a trackball, a touchpad, a touch screen, etc.).

The display device <NUM> may display the results obtained by executing the instructions by the processor <NUM>.

The memory <NUM> is used to store data such as programs and data that are essential for the operating system to run, intermediate results during the processor <NUM> operation process, and the like.

It will be appreciated that the memory <NUM> of the embodiment of the present invention may be a volatile or non-volatile memory, and may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM) and is used as an external cache. The memory <NUM> used in the apparatus and method described herein includes, but is not limited to, the above-mentioned memory and any other suitable type of memory.

In some embodiments, the memory <NUM> stores various elements such as executable modules or data structures, their subsets or extended sets, an operating system <NUM>, and application programs <NUM>.

The operating system <NUM> includes various system programs such as a framework layer, a core layer, a drive layer, and the like, to implement various basic tasks and hardware based tasks. The application programs <NUM> include various application programs, such as a browser, to implement various application tasks. The program for implementing the method of the embodiment of the present invention may be included in the application programs <NUM>.

The method according to the above-described embodiment of the present invention can be applied to or implemented by the processor <NUM>. The processor <NUM> may be an integrated circuit chip with signal processing capability. In the implementation process, each of the steps of the above method can be completed by integrated logic circuits of hardware of the processor <NUM> or software commands. The processor <NUM> may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field configurable circuit array (FPGA), or other programmable logic devices, individual gates or transistor logic devices, or individual hardware units, and may implement or execute each method, step, and logic block diagram disclosed as the embodiment of the present invention. The general purpose processor may be a microprocessor or any known processor. A combination of the steps of the method of the embodiment of the present invention that can be implemented directly as a result of being executed and completed by a hardware decoder processor or executed and completed by a combination of hardware in a decoder processor and software modules. The software modules may be stored in a mature storage medium in the art such as a random memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, registers, or the like. The recording medium is in the memory <NUM>, and the processor <NUM> reads information from the memory <NUM> and combines the information with the hardware of the processor <NUM> to complete the above method steps.

It is understandable that the embodiments described herein can be implemented in hardware, software, firmware, middleware, microcode, or combinations thereof. For hardware implementation, the process units may be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic modules for implementing the foregoing functions, or any combinations of these devices.

For software implementation, the techniques described herein can be implemented by modules (e.g., processes, functions, etc.) that perform the functions described herein. Software code is stored in the memory and can be executed by the processor. The memory can be implemented in or outside the processor.

The image processing parameters includes a time stamp of each frame image produced by the photographing device, a rolling shutter phenomenon time of the photographing device, a width and a height of a single fish-eye image, and an aperture value of the photographing device.

Specifically, when the computer program is executed by the processor <NUM>, obtaining the time at the exposure center with respect to each frame image based on the time stamp of the frame image generated by the photographing device; determining the start time of the rolling shutter phenomenon with respect to the frame image; determining the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image based on the time at the exposure center and the start time of the rolling shutter phenomenon with respect to the frame image; determining target gyro data corresponding to the scan line based on gyro data of the photographing device, the time at the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line; calculating a target rolling shutter phenomenon rotation angle with respect to the scan line based on the target gyro data, the time at the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line can be implemented.

Specifically, when the computer program is executed by the processor <NUM>, the following equation also allows for the step of determining the start time of the rolling shutter phenomenon with respect to the frame image: <MAT>.

Specifically, when the computer program is executed by the processor <NUM>, it is also possible to implement determining the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image by the following equation: <MAT>.

In the equation, rstrow_i denotes the time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image, RSTstart denotes the start time of the rolling shutter phenomenon with respect to the frame image, row_i denotes the i-th scan line of the frame image, and h denotes the total number of scan lines of the frame image.

Specifically, when the computer program is executed by the processor <NUM>, using the target gyro data to section a target period into at least two subperiods, the length of the target period being determined by the time of occurrence of the rolling shutter occurrence with respect to each scan line with respect to the frame image and the time at the exposure center with respect to the frame image; multiplying the lengths of the times of the at least two subperiods by first gyro data corresponding to the at least two subperiods, respectively, to obtain at least two products, the first gyro data being data included in the target gyro data or reference gyro data; and adding the products to obtain a target rolling shutter phenomenon rotation angle with respect to the scan line can be implemented.

Specifically, when the computer program is executed by the processor <NUM>, obtaining a correcting reference parameter including information of the lens to be corrected and a correcting direction; determining a final target rolling shutter phenomenon rotation angle corresponding to the target rolling shutter phenomenon rotation angle based on correspondence relationships between the information of the lens to be corrected; the correcting direction; and the angle can be implemented.

Specifically, when the computer program is executed by the processor <NUM>, obtaining a final target rolling shutter phenomenon rotation angle with respect to each scan line with respect to the i-th frame image; converting the final target rolling shutter phenomenon rotation angle into a rotation matrix; cutting the double fish-eye image into single fish-eye images and converting target single fish-eye images into unit spherical coordinates based on the aperture value of the photographing device to obtain unit coordinates of the target single fish-eye images, which are single frame images included in the single fish-eye images; multiplying the unit spherical coordinates by the rotation matrix to obtain corrected unit spherical coordinates; converting the corrected unit spherical coordinates to 2D fish-eye coordinates; and using the 2D fish-eye coordinates to generate corrected target single fish-eye images; obtaining a corrected double fish-eye image by using the corrected single fish-eye images can also be implemented.

Specifically, when the computer program is executed by the processor <NUM>, rotating the unit spherical coordinates by a first angle along a first coordinate axis to obtain first unit spherical coordinates; multiplying the first unit spherical coordinates by the rotation matrix to obtain corrected first unit spherical coordinates; rotating in the reverse direction the corrected first unit spherical coordinates by the first angle along the first coordinate axis; converting the corrected first unit spherical coordinates after being rotated in the reverse direction to 2D fish-eye coordinates can also be implemented.

It should be understood that the methods and apparatuses disclosed in some embodiments provided by the present invention can be implemented in other forms. For example, the embodiments of the above described apparatus are only schematic examples. For example, the classification of the units are merely logical functional classification, and another classification method may be employed in an actual implementation. For example, multiple units or elements may be combined, or included in another system, or some functions may be omitted or not performed. Additionally, the interconnections or direct or communicable connections indicated or disclosed above may be those implemented via interfaces, and the indirect or communicable connections between devices or units may be electrical or mechanical or by other forms of connections.

Also, various functional units in each embodiment of the invention may be collected into a single process unit, each unit may physically exist alone, or two or more units may be collected into a single unit. The collected unit may be implemented in the form of hardware or may be implemented in the form of hardware plus a software functional unit.

Claim 1:
A method for correcting a rolling shutter phenomenon, the method comprising:
obtaining a double fish-eye image to be processed using a photographing device;
obtaining image processing parameters including gyro data of the photographing device, a time stamp of each frame image generated by the photographing device, and a rolling shutter phenomenon time with respect to the photographing device;
calculating, based on the image processing parameters, as a rolling shutter phenomenon correcting parameter, a target rolling shutter phenomenon rotation angle with respect to each scan line, wherein said calculating comprises:
obtaining a time of an exposure center with respect to each frame image based on the time stamp of the frame image generated by the photographing device;
determining a start time of the rolling shutter phenomenon with respect to the frame image based on the time at the exposure centre of the frame image and the rolling shutter phenomenon time with respect to the photographing device;
determining a time of occurrence of the rolling shutter phenomenon with respect to each scan line with respect to the frame image based on the start time of the rolling shutter phenomenon and the rolling shutter phenomenon time;
determining target gyro data corresponding to the scan line based on the gyro data of the photographing device, the time at the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line; and
calculating the target rolling shutter phenomenon rotation angle with respect to the scan line based on the target gyro data, the time at the exposure center with respect to the frame image, and the time of occurrence of the rolling shutter phenomenon with respect to the scan line; and
correcting the rolling shutter phenomenon with respect to the double fish-eye image in a spherical-coordinate system using the rolling shutter phenomenon correcting parameter.