55 lines
1.6 KiB
Groff
55 lines
1.6 KiB
Groff
.TH IM_STDIF 3 "10 May 1991"
|
|
.SH NAME
|
|
im_stdif, im_stdif_raw \- statistical differentiation of an image
|
|
.SH SYNOPSIS
|
|
.B #include <vips/vips.h>
|
|
|
|
int im_stdif(in, out, a, m0, b, s0, xw, yw)
|
|
.br
|
|
IMAGE *in, *out;
|
|
.br
|
|
double a, m0, b, s0;
|
|
.br
|
|
int xw, yw;
|
|
|
|
int im_stdif_raw(in, out, a, m0, b, s0, xw, yw)
|
|
.br
|
|
IMAGE *in, *out;
|
|
.br
|
|
double a, m0, b, s0;
|
|
.br
|
|
int xw, yw;
|
|
|
|
.SH DESCRIPTION
|
|
im_stdif() preforms statistical differencing according to the formula
|
|
given in page 45 of the book "An Introduction to Digital Image Processing" by
|
|
Wayne Niblack. This transformation emphasises the way in which a pel differs
|
|
statistically from its neighbours. It is useful for enhancing low-contrast
|
|
images with lots of detail, such as X-ray plates.
|
|
|
|
At point (i,j) the output is given by the eqn:
|
|
|
|
vout(i,j) = a*m0 + (1-a)*meanv +
|
|
(vin(i,j) - meanv) * (b*s0) / (s0+b*stdv)
|
|
|
|
Values a, m0, b and s0 are entered, while meanv and stdv are the values
|
|
calculated over a moving window of size xw, yw centred on pixel (i,j). m0 is the
|
|
new mean, a is the weight given to it. s0 is the new standard deviation, b is
|
|
the weight given to it. Try:
|
|
|
|
im_stdif $VIPSHOME/pics/huysum.v fred.v 0.5 128 0.5 50 11 11
|
|
|
|
The opreation works on one-band UCHAR images only, and writes a one-band UCHAR
|
|
image as its result. The output image has the same size as the input - a black
|
|
border is added to mark uncomputable pixels.
|
|
|
|
im_stdif_raw() behaves exactly as im_stdif(), but does not add the border of
|
|
black pixels.
|
|
|
|
.SH RETURN VALUE
|
|
All functions returns 0 on success and -1 on error.
|
|
.SH SEE ALSO
|
|
im_lhisteq(3), im_histgr(3), im_hsp(3), im_heq(3).
|
|
.SH COPYRIGHT
|
|
1991-1996, The National Gallery and Birkbeck College
|