-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
registration of binary images vs. Maurer distance maps #344
Comments
I don't see anything on the pdfs. |
I updated the post with png images - not sure why the R PDFs take so long to render.
Thanks,
…-Tom
On Mar 12, 2021, at 7:05 PM, Nick Tustison ***@***.***> wrote:
I don't see anything on the pdfs.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
The default syn metric is mutual information. For the scheme you're proposing, you'd have to use something like mean squares. |
As expected. "SyNCC" uses neighborhood correlation and I mentioned mean squares. Neighborhood correlation suffers from the same problem as mutual information for this situation in that it does not quantify an absolute difference between the two images you're trying to align. So a perfectly aligned image patch vs. one that is slightly shifted normal to the boundary (as is the case in the top vs. the bottom) are going to basically have the same correlation values. |
reproducible example:
let me know if this improves things. this would register both the image boundaries and its geometric skeleton. |
If you want to know the effect on speed then you should only change the input images not the transformation model nor the similarity metric. I used syncc, you used something else. Second we would not expect this to improve the surface registration, only the registration of the skeletons and interior structures. This will impact things like the shape of the deformation field and related measurements like Jacobian . |
Thanks - I'm ultimately interested in the surface jacobians only, because these are analyses of fossil endocasts, and we generally don't have any direct evidence of the interiors (so we don't know what to make of them anyway - though people have tried to infer things). So getting surface registrations as close as possible is our immediate goal. My point about speed was that if a different transformation model and/or similarity metric produced very close to the same (essentially the same?) surface registration accuracy, but took a lot longer to calculate, then it isn't clear it would be worth the added computation time - again, for our purposes. If there are thoughts about getting the surface registrations even closer, let me know (but less than .5 mm seems like its close enough for hand grenades). -Tom |
Maybe if you're interested exclusively in surface deformations, you should be using a surface-based tool? I bet @r03ert0 who just published this https://www.sciencedirect.com/science/article/pii/S1053811920311708 recently could be of assistance. |
hello @ptsii and @gdevenyi |
Thanks everyone, yes these would potentially be useful. Looks like Yeo's new site is: https://sites.google.com/view/yeolab ? I'll look into these. With respect to spherical topology: Yes for many of our analyses, but fossil specimens are very often incomplete, in different areas across different specimens. I'm not sure that surface-based tools are ultimately the best, if the goal is inferring internal structure (one of our goals), but my intuitions could be wrong. |
I'm using ANTsR tools to compare binary surfaces (virtual brain endocasts). I have found that using SyNRA on binary images gives good results, in the sense that the warped moving image looks very close to the target fixed image (so to speak). Here is what I did:
binaryImageA_into_binaryImageB_reg<-antsRegistration(binaryImageB, binaryImageA, typeofTransform = "SyNRA", affIterations = c(40, 30, 20, 10), regIterations = c(40, 30, 20, 10)) binaryImageA_into_binaryImageB_reg_image<-antsApplyTransforms(binaryImageB, binaryImageA, transformlist = binaryImageA_into_binaryImageB_reg$fwdtransforms, interpolator = "nearestNeighbor")
Here is what they look like plotted over each other:
plot(binaryImageB, binaryImageA_into_binaryImageB_reg_image, alpha=.9)
using_binary_masks.pdf
However I wondered if I might get an even closer fit if I registered Maurer distance maps of the two binary images. However, when I do this, the warped moving image looks like a significantly smaller version of the target fixed image. Here is what I did:
Here is what the plot overlay looks like:
using_distance_maps_for_registration.pdf
I'm curious why this happens. Is this expected behavior? I would have thought the registration would work even better. Perhaps I'm using an inappropriate registration type?
Thanks for any thoughts.
-Tom
The text was updated successfully, but these errors were encountered: