MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Dalas on 19 Jul 2013

I'm trying to compare two volumes consisting of 3D white shapes on a black background using matlab 2013 for windows.

1) I want to know how much they overlap over all. Correct me if I'm wrong but I think I can use the **nnz** function to do that.

2) I want to know where the volumes do not overlap. I have no clue how to accomplish this.

Any help is appreciated.

Answer by Image Analyst on 19 Jul 2013

Accepted answer

Define "find the overlap". To get the overlap image:

overlapImage = binaryVolume1 & binaryVolume2; % To count number of pixels numOverlapPixels = nnz(overlapImage);

Show 1 older comment

Image Analyst on 19 Jul 2013

% Create the volumes: binaryVolume1 = false(256,256,256); binaryVolume2 = false(256,256,256); % "Light up" pixels for k = 1 : size(x) row = y(k); column = x(k); slice = z(k); binaryVolume1(row, column, slice) = true; end

Then do for the other volume, binaryVolume2, with its x,y, and z. Then use the code above in my answer to find overlap or matching voxels.

Dalas on 19 Jul 2013

I dont need to create the volumes I already have them i just need to analyze them.

I'm looking at mri brain scans by the way just so you have some context of what im working on.

I geuss the volumes arn't actually volumes either their simply stacked 2d "brain slices". We arnt using 3d mr image aquisition. But I think for matlabs purposes its the same as a 3d volume.

Would xor work on 3d arrays?

## 0 Comments