Image processing apparatus and image processing method
09854215 · 2017-12-26
Assignee
Inventors
Cpc classification
International classification
Abstract
An image processing apparatus generates image data for projection by applying a deformation process to obtained image data based on an input parameter related to the deformation process. The image processing apparatus prohibits execution of the deformation process if it is determined that a magnification related to the deformation process based on the input parameter with respect to the obtained image data is out of a predetermined range.
Claims
1. An image processing apparatus comprising: an acquiring unit configured to acquire image data; an input unit configured to input a parameter for deformation processing on the image data acquired by the acquiring unit; a determination unit configured to determine, using inclination information of deformed image data specified based on the parameter for the deformation processing input by the input unit, whether the deformation processing on the image data according to the parameter input by the input unit is not to be performed; and a control unit configured to control, in a case where the determination unit determines that the deformation processing on the image data according to the parameter input by the input unit is not to be performed, not to perform the deformation processing based on the parameter input by the input unit.
2. The image processing apparatus according to claim 1, further comprising a processing unit configured to perform the deformation processing on the image data acquired by the acquiring unit according to the parameter input by the input unit in a case where the determination unit does not determine that the deformation processing on the image data according to the parameter is not to be performed.
3. The image processing apparatus according to claim 1, wherein the determination unit is configured to determine, based on vertex coordinates of the deformed image data specified based on the parameter input by the input unit, whether the deformation processing on the image data according to the parameter is not to be performed.
4. The image processing apparatus according to claim 1, wherein the determination unit is configured to determine, using at least one of (a) first inclination information which is specified by a first vertex coordinate of the deformed image data and a second vertex coordinate of the deformed image data and (b) second inclination information which is specified by a third vertex coordinate of the deformed image data and a fourth vertex coordinate of the deformed image data, whether the deformation processing on the image data according to the parameter is not to be performed.
5. The image processing apparatus according to claim 1, wherein the determination unit is configured to determine, using both of (a) first inclination information which is specified by a first vertex coordinate of the deformed image data and a second vertex coordinate of the deformed image data and (b) second inclination information which is specified by a third vertex coordinate of the deformed image data and a fourth vertex coordinate of the deformed image data, whether the deformation processing on the image data according to the parameter is not to be performed.
6. The image processing apparatus according to claim 4, wherein the determination unit is configured to determine, in a case where at least one of a first inclination represented by the first inclination information and a second inclination represented by the second inclination information is larger than a predetermined inclination, the deformation processing on the image data according to the parameter is not to be performed.
7. The image processing apparatus according to claim 1, wherein the determination unit is configured to determine, using at least one of an inclination of first lines of the deformed image data specified based on the parameter and an inclination of second lines of the deformed image data specified based on the parameter, whether the deformation processing on the image data according to the parameter is not to be performed.
8. The image processing apparatus according to claim 1, the determination unit is configured to determine, in a case where at least one of inclination of a first line of the deformed image data and a second line of the deformed image data is larger than a predetermined inclination, the deformation processing on the image data according to the parameter is not to be performed.
9. The image processing apparatus according to claim 7, wherein the first line corresponds to a start line of the deformed image data and the second line corresponds to a last line of the deformed image data.
10. The image processing apparatus according to claim 6, wherein the predetermined inclination is determined based on read out speed of data from a cache memory used for the deformation processing.
11. The image processing apparatus according to claim 1, further comprising a projection unit configured to project an image corresponding to a processed image data obtained based on the deformation processing on the image data acquired by the acquiring unit.
12. The image processing apparatus according to claim 11, wherein the projection unit is configured to project, according to a determination result by the determination unit, an image representing that the deformation processing based on the parameter input by the input unit is not performed.
13. The image processing apparatus according to claim 1, wherein the deformation processing is keystone processing.
14. An image processing method comprising: acquiring image data; inputting a parameter for deformation processing on the acquired image data; determining, using inclination information of deformed image data specified based on the input parameter for the deformation processing, whether the deformation processing on the image data according to the input parameter is not to be performed; and controlling, in a case where it is determined that the deformation processing on the image data according to the input parameter is not to be performed, not to perform the deformation processing based on the input parameter.
15. The image processing method according to claim 14, wherein, in the determining, it is determined, based on vertex coordinates of the deformed image data specified based on the input parameter, whether the deformation processing on the image data according to the input parameter is not to be performed.
16. The image processing method according to claim 14, wherein, in the determining, it is determined, using at least one of (a) first inclination information which is specified by a first vertex coordinate of the deformed image data and a second vertex coordinate of the deformed image data and (b) second inclination information which is specified by a third vertex coordinate of the deformed image data and a fourth vertex coordinate of the deformed image data, whether the deformation processing on the image data according to the input parameter is not to be performed.
17. A non-transitory storage medium storing a program for causing a computer to perform an image processing method comprising: acquiring image data; inputting a parameter for deformation processing on the acquired image data; determining, using inclination information of deformed image data specified based on the input parameter for the deformation processing, whether the deformation processing on the image data according to the input parameter is not to be performed; and controlling, in a case where it is determined that the deformation processing on the image data according to the input parameter is not to be performed, not to perform the deformation processing based on the input parameter.
18. The non-transitory storage medium according to claim 17, wherein, in the determining, it is determined, based on vertex coordinates of the deformed image data specified based on the input parameter, whether the deformation processing on the image data according to the input parameter is not to be performed.
19. The non-transitory storage medium according to claim 17, wherein, in the determining, it is determined, using at least one of (a) first inclination information which is specified by a first vertex coordinate of the deformed image data and a second vertex coordinate of the deformed image data and (b) second inclination information which is specified by a third vertex coordinate of the deformed image data and a fourth vertex coordinate of the deformed image data, whether the deformation processing on the image data according to the input parameter is not to be performed.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DESCRIPTION OF THE EMBODIMENTS
(8) Hereinafter, an example of a preferred embodiment of the present invention will be described with reference to the attached drawings. The present embodiment provides a configuration of determining availability of deformation in, for example, an image processing apparatus (hereinafter, “image deformation apparatus”) that deforms an image in a projector. The image deformation apparatus of the present embodiment determines whether deformation to a deformation shape designated by a user is possible in an image deformation process known as a keystone correction function (or a trapezoid correction function) of the projector.
(9)
(10) An image deformation apparatus 100 shown in
(11) In the image deformation apparatus 100, an image writing unit 105 receives the input image 101 and the input synchronizing signal 103 and outputs input image information 114 and the input image 101. The input image information 114 includes the coordinates before deformation 0 to 3 as shown in input image information 600 of
(12) Returning to
(13) The deformation control unit 108 receives the input image information 114, the deformation setting information 115, and the deformation availability information 117 and outputs the deformation setting information 115 input when the deformation availability information 117 indicates that the deformation is possible. The deformation control unit 108 outputs the deformation setting information 115 based on the deformation availability information 117 to control the image deformation apparatus 100 to perform deformation setting of only deformable shapes.
(14) The image deformation unit 109 receives the input image 101 from the image writing unit 105 and the deformation setting information 115 from the deformation input unit 106 to deform the input image 101 and outputs the deformed pixel data (hereinafter, “deformed pixel image data 119”). The image deformation unit 109 obtains the deformed pixel image data 119 by, for example, projective transformation of the input image 101. The deformed pixel image data 119 is pixel-by-pixel image data for outputting, to coordinates after deformation, the input image 101 input according to the input synchronizing signal 103.
(15) The cache memory 110 receives the deformed pixel image data 119 and outputs deformed tile image data 120 integrating the data in tiles. The cache memory 110 also outputs, to the deformation determination unit 107, cache configuration information 116 indicating the configuration of the cache memory 110.
(16) The cache configuration information 116 includes the number of pixels in the horizontal direction, the number of pixels in the vertical direction, and the number of cache tiles in the vertical direction as indicated by cache configuration information 604 of
(17) The cache configuration information 116 also includes a vertical direction output rate used in a vertical direction determination process and output time per pixel used in a horizontal direction determination process described later. The vertical direction output rate indicates the number of lines that can be output for one input line in the cache memory 110. The output time per pixel is a pixel output rate (output time per pixel) of the cache memory 110. The vertical direction output rate and the pixel output rate are used in the determination process in the vertical direction and the determination process in the horizontal direction described later.
(18) The frame memory 111 receives the deformed tile image data 120 and outputs deformed line image data 121 in order from a line that is filled with data of one line and that can be output.
(19) The image reading unit 113 receives the deformed line image data 121 and the output synchronizing signal 104 and outputs the output image 102 according to timing designated by the output synchronizing signal 104. The output synchronizing signal 104 includes a horizontal synchronizing signal, a horizontal data effective signal, a vertical synchronizing signal, and a vertical data effective signal as indicated by an output synchronizing signal 603 of
(20) The deformation determination unit 107 is configured to determine whether the deformation based on the deformation information designated by the user in the image deformation apparatus 100 can be performed. Roughly, the deformation determination unit 107 executes a process of receiving the input image information 114, the deformation setting information 115, and the cache configuration information 116 to determine whether the deformation shape of the deformation setting information 115 can be realized based on the information. The deformation availability information 117 is output.
(21) Details of the deformation determination unit 107 will be described in detail with reference to
(22) Details of the process of steps S701 to S704 (inclination determination process) will be described with reference to
(23) The example with the small deformation angle illustrated in
(24) On the other hand, an inclination of a line 305 indicating the input order of the deformed pixel data is large in the example with the large deformation angle as in the case of
(25) The processing flow will be described with reference again to
(Ydst0−Ydst1)/(Xdst0−Xdst1)<cacheHeight/cacheWidth*(cacheNum−1)
(Ydst3−Ydst2)/(Xdst3−Xdst2)<cacheHeight/cacheWidth*(cacheNum−1)
(26) Variables: meaning
(27) (Xdst0 to 3, Ydst0 to 3): coordinates after deformation 0 to 3 of the deformation setting information 601
(28) cacheWidth: the number of pixels in the horizontal direction of the cache configuration information 604
(29) cacheHeight: the number of pixels in the vertical direction of the cache configuration information 604
(30) cacheNum: the number of tiles in the vertical direction of the cache configuration information 604.
(31) If one of the determinations is violated in step S703, the process moves to step S716. The deformation determination unit 107 outputs deformation disapproval as deformation availability information and moves to step S717 to end the process. On the other hand, if none of the determinations is violated, the process moves to step S705 (determination process in the vertical direction). The deformation availability notification unit 112 can project an image related to the availability of deformation when the deformation availability information is obtained from the deformation determination unit 107. For example, when the user sets the degree of deformation while referencing an interface image provided by the deformation input unit 106, the display method of the interface image can be switched between the case that further deformation is possible and the case that further deformation is impossible.
(32) In this way, whether the inclination after deformation corresponding to the input of one line of the input image falls within the allowable inclination calculated from the configuration information of the cache memory 110 is determined in the inclination determination process. In the present embodiment, the cache tiles can be handled in step shapes as shown in
(33) Details of the process of steps S705 to S709 (determination process in the vertical direction) will be described with reference to
(34) Parts in the input image 400, which correspond to the point 406 in which the Y direction magnification ratio after deformation exceeds the threshold in the determined output image and correspond to the number of lines 407 in which the Y direction magnification ratio after deformation exceeds the threshold in the output image, are obtained in the input image. The example of
(35) If there are pixels in which the Y direction magnification ratio exceeds the threshold at the upper end of the side to be checked in
(36) The process flow will be described with reference again to
dstOverLine>srcOverLine*outLineLimit
(37) Variables: meaning
(38) outLineLimit: vertical direction output rate of the cache memory 110
(39) srcOverLine: the number of lines 402 of the section corresponding to the section where the Y direction magnification ratio after deformation exceeds the threshold in the input image
(40) dstOverLine: the number of lines 407 of the section where the Y direction magnification ratio after deformation exceeds the threshold in the output image.
(41) If the determination in step S708 is violated, the process moves to step S716, and deformation disapproval is output as deformation availability information. The process moves to step S717, and the process ends. On the other hand, if none of the determinations is violated, the process moves to step S710 (determination process in the horizontal direction).
(42) Steps S710 to S714 (determination process in the horizontal direction) will be described with reference to
(43)
(44) If there are pixels in which the X direction magnification ratio exceeds the threshold on the left side of the line to be checked in
(45) The processing flow will be described with reference again to
[dstOverPixel−srcOverPixel]×RatePerPixel<Htotal−HDataEnable
(46) Variables: meaning
(47) Htotal: horizontal synchronizing signal period of the input synchronizing signal 602.
(48) HDataEnable: horizontal data effective signal period of the input synchronizing signal 602
(49) srcOverPixel: the number of pixels 502 of the section corresponding to the section where the X direction magnification ratio after deformation exceeds the threshold in the input image
(50) dstOverPixel: the number of pixels 505 of the section where the X direction magnification ratio after deformation exceeds the threshold in the output image
(51) RatePerPixel: pixel output rate (output time per pixel) of the cache memory 110
(52) If one of the determinations in step S713 is violated, the process moves to step S716, and deformation disapproval is output as deformation availability information. The process moves to step S717, and the process ends. On the other hand, if none of the determinations is violated, the process moves to step S715, and deformation approval is output as deformation availability information. The process moves to step S717, and the process ends.
(53) Through the process shown in
(54) A flow of data in this case will be specifically described. The input image 101 is input from the image writing unit 105 to the frame memory 111 and is output as the output image 102 from the image reading unit 113, sequentially through the cache memory 110 and the image deformation unit 109. The image reading unit 113 provides the image deformation unit 109 with coordinates in a scan order instructed by the output synchronizing signal 104 (for example, display scan order of display). The image deformation unit 109 calculates coordinates before deformation relative to the provided coordinates and makes a request to the cache memory 110. If the cache memory 110 holds the deformed pixel image data 119 of the requested coordinates before deformation, the cache memory 110 outputs the data to the image deformation unit 109. On the other hand, if the cache memory 110 does not hold the deformed pixel image data 119, the cache memory 110 requests the frame memory 111 for the deformed tile image data 120 including the deformed pixel image data 119. The cache memory 110 temporarily holds the data in the cache and outputs the data to the image deformation unit 109. In this way, the amount of deformation from the input image 101 to the output image 102 and the capacity of the cache memory are compared as described above in the configuration in which the image is deformed when the image is read from the frame memory 111.
(55) Embodiments of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions recorded on a storage medium (e.g., non-transitory computer-readable storage medium) to perform the functions of one or more of the above-described embodiment(s) of the present invention, and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more of a central processing unit (CPU), micro processing unit (MPU), or other circuitry, and may include a network of separate computers or separate computer processors. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)), a flash memory device, a memory card, and the like.
(56) While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
(57) This application claims the benefit of Japanese Patent Application No. 2013-153832, filed Jul. 24, 2013, which is hereby incorporated by reference herein in its entirety.