roofDiff {DRIP} | R Documentation |
roof/valley edge detection
Description
Compute difference between two one-sided gradient estimators.
Usage
roofDiff(image, bandwidth, blur)
Arguments
image |
A square matrix object of size n by n, no missing value allowed. |
bandwidth |
A positive integer to specify the number of pixels used in the local smoothing. |
blur |
If blur = TRUE, besides the conventional 2-D kernel function, a univariate kernel function is used to address the issue of blur. |
Details
At each pixel, the second-order derivarives (i.e., f''_{xx}
,
f''_{xy}
, and f''_{yy}
) are estimated by
a local quadratic kernel smoothing procedure. Next, the local
neighborhood is first divided into two halves along the direction
perpendicular to (\widehat{f}''_{xx}
, \widehat{f}''_{xy}
). Then the
one-sided estimates of f'_{x+}
and f'_{x-}
are obtained
respectively by local linear kernel smoothing. The estimates of
f'_{y+}
and f'_{y-}
are obtained by the same procedure
except that the neighborhood is divided along the direction
(\widehat{f}''_{xy}
, \widehat{f}''_{yy}
).
Value
Returns a matrix where each entry is the maximum of the
differences: |\widehat{f}_{x+} - \widehat{f}_{x-}|
and
|\widehat{f}_{y+} - \widehat{f}_{y-}|
at each pixel.
References
Qiu, P., and Kang, Y. "Blind Image Deblurring Using Jump Regression Analysis," Statistica Sinica, 25, 2015, 879-899.
See Also
Examples
data(peppers)
diff <- roofDiff(image = peppers, bandwidth = 8) # Time consuming