1. Field of the Invention
The present invention relates to an image processing method and an imaging apparatus for smoothing an image while retaining edges.
2. Description of the Related Art
Conventionally, filters are commonly used for digital image noise reduction in order to improve the quality of a digital still image or a digital movie.
Filters commonly used to improve image quality include Gaussian filters, median filters, and bilateral filters etc. which smoothes an image by referencing the surrounding pixels about a target pixel for correction (a focus pixel).
Gaussian filters consider the spatial position of a point and assigns heavy weights to pixels that are close to the focus pixel and light weights to pixels far from the focus pixel, and the filtering process obtains the weighted average. Median filters sort the values of the focus pixel and its surrounding pixels, and takes their median value to reduce noise, and this is commonly used for noise reduction. However, these filtering technologies have a problem where the edges of an image will also smudge with removal of noise. Therefore, bilateral filters, called edge-retaining filters, are used to retain edges of an image while reducing noise.
This filter assigns Gaussian weights to “the difference in intensity value compared to a focus pixel” and obtains the average as indicated in the equation below. Edges are retained by assigning light weights to parts where there are great changes in intensity.
xj: Position (Coordinate) of pixel j, dj: Intensity of pixel j
wx: Weight according to position (position weight),
wd: Weight dependent on intensity (including colors)
In order to detect edges more accurately, proposed in this document is a method of capturing multiple images using different methods, detecting edges for each image, and applying a bilateral filter to the set of images. (For example, refer to Patent Document 1)
Patent Document 1: Japanese Unexamined Patent Application Publication No. 2006-180268
A challenge for noise reduction filters that are applied to digital images is the retention of edge information so as to not smudge edges of an image while reducing both high frequency noise and low frequency noise.
For example, the photographic image of hair in
Regarding low frequency noise, they cannot be reduced if the size of the noise reduction process reference pixel area (hereafter called “window”) is too small which will cause the correction to be performed with incorrect information. On the other hand if the window is too large, that requires large volume of computation and increases processing time. Also, large windows have an effect of smudging edges. This creates an issue where necessary high frequency components of an image are reduced.
With the above circumstances taken into consideration, the object of the present invention is to provide an image processing method and an imaging apparatus to reduce low frequency noise of a digital image while retaining edge information and not increasing computational load.
In order to achieve the object, there is provided according to an aspect of the present invention with its image processing method for reducing noise of an image to be filtered by determining a noise reduction filter coefficient and calculating weighted sum, with the coefficient, of the pixel values of a focus pixel and its surrounding reference pixels of the image including a step of determining a first coefficient of the noise reduction filter by using the difference in pixel values and relative position between a focus pixel and each of its surrounding reference pixels in the source image where the source image is the target image to be filtered, a step of creating a smoothed image by smoothing pixel values within a surrounding area for each pixel in the source image, a step of determining a second coefficient of the noise reduction filter by using the difference in pixel values and relative position between a focus pixel of the source image and a pixel extracted, by every predetermined number of pixels, from the smoothed image, and a step of computing the compensated pixel value of the focus pixel in the source image with weighted sum of each pixel value applying the first coefficient to the reference pixels and the second coefficient to the pixels detected from the smoothed image.
The present invention improves the effects of low frequency noise reduction since the compensated image is created by referencing not only the source image but also the averaged image created by weight-averaging a predetermined area centered on a pixel for every pixel of the source image.
Also, according to another aspect of the present invention, an image processing method for reducing noise of an image to be filtered by determining a noise reduction filter coefficient and calculating weighted sum, with the coefficient, of the pixel values of a focus pixel and its surrounding reference pixels of the image including a step of determining a first coefficient of the noise reduction filter by using the difference in pixel values and relative position between a focus pixel and each of its surrounding reference pixels in the source image where the source image is the target image to be filtered, a step of creating a shrunken image by smoothing pixel values for every block of a predetermined size in the source image, a step of obtaining the pixel value in the shrunken image that correspond to the source image pixel by performing linear interpolation from the shrunken image pixels, a step of determining the second coefficient of the noise reduction filter by using the difference in pixel values and relative position between a focus pixel of the source image and a pixel of a certain position related to the focus pixel in the shrunk image, and a step of computing the compensated pixel value of the focus pixel in the source image by weighted sum of each pixel value applying the first coefficient to the focus pixel and the second coefficient to the pixel of the predetermined position in the linear-interpolated shrunken image.
The present invention creates a compensated image by applying the filter not only to the source image but also to its shrunken image created by averaging the pixel values for every block of predetermined size; therefore, low frequency noise can be reduced without large increase in computational volume or necessary memory. If reduction rate r is an even number, the block size is preferably (r+1) pixels by (r+1) pixels (where r is a natural number).
An image processing method related to the present invention further including a step of detecting the direction of an edge in the focus pixel by applying an edge detection filter pre-stored, and a step of determining the noise reduction coefficient from the relative position between the focus pixel and each reference pixel according to the detected edge direction.
The present invention detects the edge direction of a focus pixel, and then determines the noise reduction filter coefficient from the relative positions of a focus pixel and each reference pixel according to the edge direction, which increases the edge information retention effect.
Also, an image processing method relating to the present invention stores a distance table that indicates the relative position between a focus pixel and each reference pixel for every edge direction, and references a distance table for the appropriate detected edge direction to determine the relative position.
The present invention stores a distance table for each edge direction, which reduces computational load while determining the relative positions between a focus pixel and its reference pixels.
According to another aspect of the present invention, an image processing apparatus to create a compensated image by reducing noise in a captured image according to the difference in pixel values and relative position between a focus pixel and each of its surrounding reference pixels in the captured image including a means for storing edge detection filters, a means for storing a distance table that indicates the relative position between a focus pixel and each reference pixel for every edge direction, an image shrinking unit for creating a shrunken image by smoothing pixel values for every block of a predetermined size in the source image where the source image is the target image to be filtered an edge direction detection unit for detecting the edge direction and strength of the focus pixel by using the edge detection filter, a position weight filter composite unit for creating a position weight filter such as a Gaussian filter, a spatial filter and so on from the detected edge strength and the relative position determined by the distance table corresponding to the edge direction detected, and a pixel value calculation unit for computing the pixel value in the shrunken image that correspond to the source image pixel by performing linear interpolation from the shrunken image pixels, and computing the compensated pixel value of the focus pixel in the source image according to the pixel values obtained by applying the position weight filter to a reference pixel of the source image and the pixel values obtained by applying the position weight filter to a pixel of a certain coordinate related to the focus pixel in the shrunk image.
According to this invention, a position weight filter is created based on relative distance of edge direction, and compensated pixel values of source image are calculated from pixel values obtained by applying the position weight filter to the source image and its shrunken image; therefore, highly effective low frequency noise reduced image can be obtained while retaining edge information.
According to the present invention, it is possible to reduce low frequency noise while retaining edges in images where bilateral filtering cannot retain the edges since not only are the differences in the distance and intensity value between a focus pixel and reference pixels determined, but edge directions are also taken into account when creating the filter.
A noise reduction algorithm for a preferred embodiment in accordance with this invention utilizes the surrounding M by N pixels of each pixel to obtain a pixel value after reducing noise.
Also, computational processing device 20 contains image data input unit 21 to input image data to be filtered in memory device 30, image shrinking unit 22 to create an averaged shrunken image to pseudo enlarge window size, edge direction detection unit 23 to compute the edge strength and direction for each pixel of the image, position weight filter composite unit 24 to create a filter that indicates weight for noise reduction of surrounding pixels according to edge strength and direction computed in edge direction detection unit 23, pixel value calculation unit 25 to calculate the noise reduced pixel value according to average weight of composite pixel value difference and position weight relating to each surrounding pixel, and pixel value output unit 26 to output compensated pixel value as data calculated in pixel value calculation unit 25. Each unit 21 to 26 can be implemented as a program that is a function of computational process device 20.
Next, operation of image processing apparatus 10 containing above configuration is described.
First, store edge detection filters 31, distance tables 36, and pixel value weight data 38 into memory device 30.
Image data input unit 21 is used to input image to be filtered (called “image to be filtered”) into source image data storage area 31 of memory device 30.
Next, image shrinking unit 22 applies equation (1) below on filtering image data (hereafter called “source image data”) stored in source image data storage area 31 to create shrunken image of shrinking ratio r by averaging the pixel values (YUV values) for each pixel in a block where block size is (r+1) pixels by (r+1) pixels (where r is a natural number) for every r pixels that is chosen as the center.
Here, parameter x, y is the target pixel coordinate and r is the shrinking ratio. Also, function P(x, y) is the pixel value of coordinate (x, y) and S(x/r, y/r) is the pixel value for the pixel at shrunken coordinate (x/r, y/r) (where x/r and y/r are integers).
If r is an even number, window size for shrinking rate r is (r+1) by (r+1), and if r is an odd number then it is r by r. This is preferable since this ensures that the window will be centralized even if r is an even number.
By referencing this shrunken image, the area (as indicated by the dashed line) of the source image can be pseudo referenced by the window enlargement ratio.
Noise reduction filter application should be performed on a larger area for a more effective low frequency noise reduction. However, enlarging the window widens the reference and increases the calculation volume. On the other hand if reference points are arbitrarily line skipped, that will lead to loss of information.
According to the image shrinking process of this embodiment, the loss of information such as edge and color can be lowered compared to simply pixel skipping since the obtained pixel value is the average YUV value for each window centered on target pixel and is used according to the shrinking ratio.
Below is the description for window size of 5 pixels by 5 pixels.
Next, obtain edge strength and direction by applying a filter to a 5 pixels by 5 pixels window centered on the focus pixel using edge direction detection unit 23. At this point, in order to detect a local edge direction, the reference pixels used are in the source image window.
Edge direction detection unit 23 computes the edge strength and direction for 12 directions (0°, 15°, 30°, 45°, 60°, 75°, 90°, 105°, 120°, 135°, 150°, 165°). At this point, use only the Y value in YUV to obtain edge direction. First, define the 12 types of 5 pixels by 5 pixels edge detection filter EFk{k=0, 1, 2, . . . , 11} corresponding to each of the 12 directions as shown in
Then, perform the 12 types of edge detection filter convolution on the 5 pixels by 5 pixels window centered on target pixel for noise reduction process P(x, y) {x, y: 2≦x≦width−2, 2≦y≦height−2}. For each direction k, obtain edge strength EdgeDegreek with equation (2).
Here, variable K is the edge direction number that corresponds to each edge detection filter, variable EFk(x, y) is the direction k edge detection filter, P(x, y) is the pixel value of coordinate x, y, and EdgeDegreek is the edge strength.
Next, obtain EdgeDegreek for each direction, and then by equation (3) obtain the EdgeDirection that maximizes edge strength.
EdgeDirection=arg maxk EdgeDegreek (3)
Here, EdgeDegreek is the edge strength for direction number=k, and EdgeDirection is the direction number after edge detection.
Also, apply equation (4) to obtain the edge strength EdgeDegree corresponding to EdgeDirection with the direction of maximum edge strength. Here EdgeDegree+90° indicates the edge direction number that is perpendicular to EdgeDirection.
EdgeDegree=min(EdgeDegreeEdgeDirection−EdgeDegree(EdgeDirection+90°),255) (4)
Here, EdgeDegree indicates edge strength.
If there is noise, the direction+90° has a tendency of having a large edge strength, so as in equation (4) the effect of background noise on edge strength can be lessened by subtracting the edge strength of the +90° edge.
Edge direction detection unit 23 computes as above for each pixel, and store edge direction and edge strength of each pixel into edge direction data storage area 34 and edge strength data storage area 35, respectively.
Next, create position weight filter to weigh a distance according to edge direction by using position weight filter composite unit 24.
As indicated in
Filter size can be arbitrary, if it is small the reference area will be small, and if it is large the computational volume will be large and information from unnecessarily far pixels will be included, so empirically approximately 7 pixels by 7 pixels is preferable.
Define the distance from the focus pixel for each reference pixel according to pixel tables 36 with the edge direction obtained in edge direction detection unit 23. At this point the distance is not the straight distance between two points but is the distance with the edge considered, that is, the distance is measured from the pseudo edge.
Next, create a weighted averaged filter Weightx,y(m, n) according to the edge direction detected by edge detection unit 23.
First, assign weight to each pixel in the m by n pixel area according to the distance from the straight line of the edge direction. Distances for each pixel in the m by n pixel area to an edge direction straight line are defined as below.
Distance(m,n)=DistanceTableEdgeDirection(x,y)(m,n) (5)
Determine weight based on the equation below using distance Distance obtained as above, edge importance Imp, and edge strength obtained from edge direction detection unit 23. Thus, a weighted averaged filter about a focus pixel is generated.
Weightx,y(m,n)=EdgeDegree(x,y)×128×exp−Distance(m,n)×Imp (6)
Here, variable x, y indicate target pixel coordinate, and Distance(m,n) is the distance from the edge direction straight line of relative pixel coordinate (m, n) based on focus pixel coordinate (x, y) in the window. Imp indicates edge importance, and it can be configured for specific purpose. For example, Imp is determined according to attributes such as image capture module 2 noise levels. Also, function Weight indicates weight of focus pixel coordinate (x, y).
Value of 128×exp−Distance(m,n)×Imp determined from Distance and Imp is as in
Next, composite weighted average filter for each of the 8 adjoining pixels by referencing their edge direction by considering the effects of noise from the edge direction detection.
Specifically, composite a weighted average filter of a focus pixel and its adjoining pixels (3 by 3) by applying the equation (7) below.
Here, function Weightx,y is the weighted average filter of coordinate x, y, and Weight′x, y is the weighted average filter after compositing the 8 neighboring pixels. Use an arbitrary value for right side denominator C since it is a constant to decrease the number of bits in order to create hardware.
Now, if the 3 by 3 pixel window contains edge direction indicated in
There are 2 edge direction “3” contained in the focus pixel and its neighboring 8 pixels in
Here, above table is weighted average filter Weightx,y(m, n) of edge direction 3 calculated based on
Similarly, there are 4 edge direction “4” with edge strengths “120,” “92,” “88,” and “75”. Then,
Also there are 2 edge direction “5” with edge strengths “96” and “132.” Then,
Also there is 1 edge direction “6” and its edge strength is “16.” Then,
Therefore, the weighted average filter combining the 8 adjoining pixels is as in
Next, pixel value calculation unit 25 performs the summation process, by applying equation (8), which considers position weight and pixel value difference weight for each of the source image and the shrunken image.
Therefore, with noise reduction filter indicated in equation (8), perform weight averaging according to Gaussian distribution by combining weight from relative position of pixel to be processed by position weight filter composite unit 24 and the difference with the YUV value of the focus pixel for each YUV value. ∥ represents obtaining absolute difference value for each YUV value, and calculating its sum.
where,
Here, variable x, y is the pixel coordinate of the focus pixel, P(x, y) is the pixel value of coordinate (x, y), S(x, y) is the pixel value in shrunken image, r is shrinking rate of shrunken image, P′(x, y) is the pixel value after noise reduction, M, N is the window size of reference pixels, strength is a value determined for an objective and an image capturing device and its range is normally between 4 and 1024. Also, G(v) is a function that becomes a lower value as v becomes larger, and is adjusted depending on its use and objective. Variable i, j indicates relative position of its surroundings. Wo and Ws are noise reduction filter coefficients (1st coefficient and 2nd coefficient) as they apply to the source image and shrunken image, respectively.
Computational process of equation (8) can be calculated each time pixel value becomes necessary, or all pixel values can be initially calculated using linear interpolation and stored in memory device 30 depending on the amount of memory. In equation (8), M/2 and N/2 are rounded down to the nearest integer for computation.
Also, in
Store noise reduced pixel value P′(x, y) for each pixel coordinate (x, y) in compensated image data storage area 39 as compensated image data.
Output compensated image data stored in compensated image data storage area 39 by using Pixel value output unit 26.
According to this embodiment of the present invention, it is possible to retain edges and reduce low frequency noise since edge directions are taken into consideration when creating filters in addition to the differences between distance and intensity of focus pixel and reference pixels.
A second embodiment of the present invention is described here.
For this embodiment, the difference in operation of image processing device 10 from the first embodiment is described below. Descriptions of basic data registration process, filtering image input process, edge direction detection process, position weight filter compositing process, and pixel value output process are omitted here since they are the same as in the first embodiment.
For the averaging process, averaging filter unit 27, averaged image is created by applying equation (9) below to a source image data stored in the source image data storage area 31 and averaging the pixel values (YUV value) in an (r+1) by (r+1) pixel block centered on each pixel in the source image.
Variable x, y is the target pixel coordinate, r determines the area to perform averaging process, function P(x, y) is the pixel value at coordinate (x, y), and A(x, y) is the pixel value after the averaging process.
In the pixel value calculation process, pixel value calculation unit 25 creates compensated image data P′(x, y) by applying equation (8) described in the first embodiment and replacing Sbilinear(x/r+i,y/r+j) with A(x+ri, y+rj) which takes into consideration position weight and pixel value weight in the summation process for both the source image and averaged image.
According to this embodiment of the present invention, edges can be retained while reducing low frequency noise, as in the first embodiment.
In the above description, pixel values in a block was averaged to create an averaged image in the averaging process; however, weighted average depending on pixel position within a block can also be used, or another smoothing process such as taking the median value of pixel values of multiple pixels in a block to create a smoothed image. Here, “smoothing” includes concepts such as averaging.
A third embodiment of the present invention is described here.
Image capturing apparatus 1 in the architecture above captures an image of a subject with image capturing unit 2, the captured image becomes image data to be filtered, it is sent to image processing apparatus 10, in image processing apparatus 10 create compensated image data by performing noise reduction process with the processing method described in the first embodiment, and then store the output in removable memory media 3. User can also obtain noise reduced photo image by attaching a printing device, which is not drawn in the diagram, to the memory media 3 and printing an image.
The present invention can be implemented as an image processing apparatus in an image processing program for a computer, or in other devices such as a digital camera or a mobile phone. Image processing apparatus includes on-chip ISP (Image Signal Processor) that are embedded in image capturing apparatus.
Number | Date | Country | Kind |
---|---|---|---|
2008-335867 | Dec 2008 | JP | national |