How to calculate an image has noise and Geometric distortion or not?
Asked Answered
D

1

6

I need to make an application in iphone which needs to calculate noise, geometric deformation other distortions in an image. How to do this? I have done some image processing stuff with opencv + iphone. But I dont know how to calculate these parameters.

1) How to calculate noise in an image?

2) What is geometric deformation and how to calculate geometric deformation of an image?

3) Is geometric deformation and distortion are same parameters in terms of image filter? or any other distortions available to calculate an image is good quality or not?

Input: My image is a face image in live video stream.

Defunct answered 11/2, 2013 at 8:2 Comment(2)
1) std between image and its smoothed version. 2) In common case that's impossible, you need to develop algorithm for your specific case. 3) There is a lot of image aberrations, not all of them are simple deformations: some are chromatic, some are irregular by field. What do you need?Thurlow
+1 - @Thurlow : Why posted it just as a comment ? Please add some details, and post as an answer. May be some good references, examples etc also.Helbonnas
T
9

I advise you to read some literature about image processing, for example Gonzalez & Woods.

1) The simplest method of noise calculation by single image is to compute standard deviation between image and its smoothed copy. For smoothing I recommend you to use simple median filter by sample of 3x3 pixels (or more). Median is non-sensitive to outbursts of data, so noice like "salt-n-pepper" won't worsen statistics. In cases of overexposed or underexposed images such method can give you bad results, in that case you can calculate FFT of image and use a high frequency components for noise estimation.

2), 3) Calculation of geometric deformation is possible only if you know, what should be on image. For example, if you use mire (optical etalon) with quadratic grid, you can find lines on your image (for example by Canny edge detector) and compute distortion, astigmatism and some other aberrations. This could be done also if you sure that image have some straight lines. Defocusing can be computed from analysis of edges on image or with help of image wavelet transform. There also much more different methods for image analysing. For example, by analysis of colour image you can estimate chromatic aberration and so on. But I repeat: in common case this operations are impossible. They all have some particular cases of application.

Read about image quality: there are no standard for this term, in every particular case you can use one or more simple characteristics to recognize whether image good or not.

In you case I'd advice you to make a lot of photos with different kind of artefacts and quality, then make simple analysis of their statistics, wavelet compositions and R-G-B components correlation. BTW, to make analysis of colour image less sensitive to its brightness I recommend you to work in HSV colorspace (but to estimate chromatic aberration you need to work exactly with RGB components).

Thurlow answered 11/2, 2013 at 10:10 Comment(2)
thanks for your reply. 1) I need to detect noise in live stream, So I cannot compare with other image ( how to do it? i.e., for single image ) 2) The image is a face image so how to detect geometric deformation is there in an face image?Defunct
In live stream you can take two subsequent images, make a simple correlation to join them, then subtract one image from another and count std. Another variant is aforesaid method with median filtering. Considering that there is a lot of different face shapes your problem could be very complex. But if all images would be produced by the same camera, you can determine once its aberrations and later restore images by known camera parameters.Thurlow

© 2022 - 2024 — McMap. All rights reserved.