-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
I’m trying to reproduce the gCNR metric exactly as used in the paper, and I want to confirm a few implementation details (especially around the ROIs and histogram/integration choices). I may have missed this in the repo/docs.
1) ROI construction details
From the paper: LV cavity vs myocardium, where myocardium is created by expanding the LV mask and subtracting the original mask.
- How much do you expand/dilate the LV mask to form the myocardium “ring” (kernel size / radius / iterations / structuring element)?
- Is dilation done in pixel space (fixed number of pixels), or relative to LV size (e.g., % of bbox / equivalent radius)?
- Do you apply any additional cleanup (closing/opening, hole filling, removing small components)?
2) LV “compression” + bottom truncation
The paper mentions compressing the LV ROI and truncating the bottom ~30% to reduce bias.
- What does “compress” mean operationally (erode? scale about centroid? shrink bbox? something else)?
- Is the 30% truncation based on:
- LV mask height,
- LV bounding box height,
- image height,
- or something else?
- Is “bottom” defined in image coordinates (increasing y), and do you apply truncation before/after dilation?
3) gCNR calculation specifics
I’m implementing gCNR as 1 - ∫ min(pA(x), pB(x)) dx using intensity distributions from the two ROIs.
- Are intensities computed on raw grayscale, or after any pre-processing (e.g., log compression, normalization, clipping)?
- Are distributions
pA,pBcomputed via:- histogram (if so: #bins, bin range, density normalization),
- KDE,
- or something else?
- In the discrete implementation, do you compute:
sum(min(pA, pB)) * bin_width(integral approximation),- or just
sum(min(pA, pB))with already-normalized densities?
- Do you sample equal numbers of pixels from each ROI, or use all available pixels?
- Any special handling for frames where one ROI has too few pixels?
4) Where in the repo?
If this is already implemented:
- Could you point me to the exact file/function that constructs the ROIs and computes gCNR?
Thanks a lot — even a short pointer (or parameter values like dilation iterations/bins) would help me match your results.
Metadata
Metadata
Assignees
Labels
No labels