Learn R Programming

DRIP (version 1.6)

roofDiff: 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.

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.

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}\)).

References

Qiu, P., and Kang, Y. "Blind Image Deblurring Using Jump Regression Analysis," Statistica Sinica, 25, 2015, 879-899.

See Also

roofEdgeParSel, roofEdge

Examples

Run this code
# NOT RUN {
	data(peppers) 
	#diff = roofDiff(image = peppers, bandwidth = 8) # Time consuming
# }

Run the code above in your browser using DataLab