blob_doh(image, min_sigma=1, max_sigma=30, num_sigma=10, threshold=0.01, overlap=0.5, log_scale=False)
Blobs are found using the Determinant of Hessian method . For each blob found, the method returns its coordinates and the standard deviation of the Gaussian Kernel used for the Hessian matrix whose determinant detected the blob. Determinant of Hessians is approximated using .
The radius of each blob is approximately :None:None:`sigma`
. Computation of Determinant of Hessians is independent of the standard deviation. Therefore detecting larger blobs won't take more time. In methods line blob_dog
and blob_log
the computation of Gaussians for larger :None:None:`sigma`
takes more time. The downside is that this method can't be used for detecting blobs of radius less than :None:None:`3px`
due to the box filters used in the approximation of Hessian Determinant.
Input grayscale image.Blobs can either be light on dark or vice versa.
The minimum standard deviation for Gaussian Kernel used to compute Hessian matrix. Keep this low to detect smaller blobs.
The maximum standard deviation for Gaussian Kernel used to compute Hessian matrix. Keep this high to detect larger blobs.
The number of intermediate values of standard deviations to consider between :None:None:`min_sigma`
and :None:None:`max_sigma`
.
The absolute lower bound for scale space maxima. Local maxima smaller than thresh are ignored. Reduce this to detect less prominent blobs.
A value between 0 and 1. If the area of two blobs overlaps by a fraction greater than threshold
, the smaller blob is eliminated.
If set intermediate values of standard deviations are interpolated using a logarithmic scale to the base :None:None:`10`
. If not, linear interpolation is used.
A 2d array with each row representing 3 values, (y,x,sigma)
where (y,x)
are coordinates of the blob and sigma
is the standard deviation of the Gaussian kernel of the Hessian Matrix whose determinant detected the blob.
Finds blobs in the given grayscale image.
>>> from skimage import data, featureSee :
... img = data.coins()
... feature.blob_doh(img) array([[197. , 153. , 20.33333333], [124. , 336. , 20.33333333], [126. , 153. , 20.33333333], [195. , 100. , 23.55555556], [192. , 212. , 23.55555556], [121. , 271. , 30. ], [126. , 101. , 20.33333333], [193. , 275. , 23.55555556], [123. , 205. , 20.33333333], [270. , 363. , 30. ], [265. , 113. , 23.55555556], [262. , 243. , 23.55555556], [185. , 348. , 30. ], [156. , 302. , 30. ], [123. , 44. , 23.55555556], [260. , 173. , 30. ], [197. , 44. , 20.33333333]])
The following pages refer to to this document either explicitly or contain code examples using this.
skimage.feature.blob.blob_doh
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them