voxel_to_hessian — REPRCONV derivative op

• Data kinds: voxel → hessian

• Call: import fullseye as fs; fs.ledger.voxel_to_hessian(vol, sigma=1.0, scale_normalize=False) (implementation को सीधे call करना हो तो import reprconv; reprconv.voxel_to_hessian(vol, sigma=1.0, scale_normalize=False), registry से लेना हो तो opsreprconv.get("voxel_to_hessian"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

volume voxel → 3-D Hessian hessian के 6 components (zz, yy, xx, zy, zx, yx)। केवल numpy और scipy से बना hessian प्रकार का प्रवेश।

hessian3d (torch का conv3d) जैसा वही रूप लौटाता है: लंबाई 6 की list, हर एक (D,H,W) float32, क्रम (zz, yy, xx, zy, zx, yx) (axis 0=z, 1=y, 2=x), इकाई 1/voxel², किनारे replicate (scipy.ndimage का mode="nearest")। इसलिए hessian_determinant / hessian_vesselness इसे सीधे पढ़ते हैं, और torch के बिना सादे pip install fullseye में भी voxel → hessian → voxel की श्रृंखला चलती है।

sigma Gaussian smoothing का scale (voxel) है। विकर्ण components "उस axis का 2nd order × बाकी 2 axes का smoothing" हैं, cross components "2 axes का 1st order × बचे axis का smoothing" के separable convolution हैं। kernels Gaussian derivative के आकार के हैं, और उनका योग तथा 1st/2nd moments ठीक-ठीक मिलाए गए हैं (sample किया गया Gaussian derivative kernel का योग 0 नहीं होता, जिससे चमक 2nd derivative में रिसती है), इसलिए 2nd degree polynomial ½xᵀAx + bᵀx पर भीतरी भाग में rounding की सीमा तक H = A मिलता है। sigma=0 का अर्थ "smoothing नहीं" नहीं, बल्कि hessian3d जैसे ही 3-tap kernels ([1,−2,1] / [−0.5,0,0.5] / [1,2,1]/4) हैं —— torch संस्करण से float32 rounding की सीमा तक मेल खाता है। scale_normalize=True पर σ² से गुणा होता है (Lindeberg का γ=1 normalisation; scales के पार मान तुलना करने के लिए; vol_frangi के आंतरिक Hessian जैसा ही नियम)।

2-D images स्वीकार नहीं: hessian प्रकार 3-D के 6 components है, और इसे लेने वाले भी (D,H,W) चाहते हैं। 2-D Hessian response के लिए sk_hessian / sk_hessian_det / xsk_hessian_eig (image → image) इस्तेमाल करें।

Args:

vol: 3-D volume (D,H,W), वास्तविक, परिमित।

sigma: Gaussian smoothing का scale (voxel)। परिमित और >= 0। 0 पर hessian3d जैसे ही kernels। डिफ़ॉल्ट 1.0।

scale_normalize: True पर हर component को σ² से गुणा करता है (sigma=0 के साथ नहीं चल सकता)।

Returns:

6 np.ndarray की list, हर एक (D,H,W) float32, क्रम (zz, yy, xx, zy, zx, yx)।

Raises:

ValueError: खाली / 3-D नहीं / अपरिमित / sigma परिमित non-negative संख्या नहीं /

scale_normalize और sigma=0 एक साथ।

खाली इनपुट (vol में 0 elements) पर ValueError उठता है।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• hessian_numpy_chain — py -3.11 examples/hessian_numpy_chain.py

वे अगले ops जिनसे type जुड़ता है (hessian को input के रूप में लेते हैं)

hessian_determinant · hessian_vesselness

इसी category के (derivative)

gradient_magnitude · gradient_coherence · hessian_determinant · hessian_vesselness


*Provenance: reprconv.py — REPRCONV operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.