Problem with Graph-Cuts & SPURS

17 views
Skip to first unread message

Jacob Degitz

unread,
Oct 16, 2024, 5:45:16 PM10/16/24
to medi-users
Hello everyone,

I have noticed an inconsistency in the use of the "base_xy" variable across sub-functions within the Graph-Cuts and SPURS pipelines. I am unsure if this inconsistency is intentional or a mistake.

In the "phase_unwrap_3d", "unwrap_unfat_3dN.m", and "unwrap_unfat_3dN.m" functions, "base_start" and "base_end" are calculated as follows:
base_start(:,:,t,zz) = circshift(base_xy(:,:,zz),[-cliques(t,1),-cliques(t,2)]).*base_xy(:,:,zz);
base_end(:,:,t,zz) = circshift(base_xy(:,:,zz),[cliques(t,1),cliques(t,2)]).*base_xy(:,:,zz);
In these functions, the selected 2D array from "base_xy" does not change in between clique loop iterations.

However, in the "energy_ho_3dW2_pi.m" and "energy_ho_3dW2.m" functions, "base_xy" is changed in between iterations of the clique loop:
base_start(:,:,t,zz) = circshift(base_xy(:,:,t),[-cliques(t,1),-cliques(t,2)]).*base_xy(:,:,t);
base_end(:,:,t,zz) = circshift(base_xy(:,:,t),[cliques(t,1),cliques(t,2)]).*base_xy(:,:,t);

The latter case appears to be a mistake, as only the first two slices in "base_xy" would ever be used, regardless of how large the original dataset is. Am I understanding this correctly? I would greatly appreciate any insight provided.

Thanks,
Jacob
Reply all
Reply to author
Forward
0 new messages