Great code! One issue I noticed though is that representations of logical/binary data (at least using imagesc function) cannot be frozen using 'freezeColor' -- you must convert them to non-binary for it to have its effect, e.g. double(myBinaryData). No error is thrown or generated if binary data is used, it simply fails to freeze (took me 20 minutes to determine what was going wrong). This is not the first code I've noticed that behaves oddly (unexpected results, no errors generated) around logicals, so it might be more of a Matlab issue than the code itself.