MATLAB: How to get enhanced segmented image

image segmentation

i used roipolyold to select the region i want…. now when i use the below code i get the segmented image and the unwanted image in blue color…. can i change the blue color to black so that i get the perfect segmented output….
ROI = ROIPOLYOLD(inputImage);
binaryImage = ROI;
fontSize=15;
structBoundaries = bwboundaries(binaryImage);
xy=structBoundaries{1};
x = xy(:, 2);
y = xy(:, 1);
outerImage = inputImage;
outerImage(~binaryImage) = 0;
leftColumn = min(x);
rightColumn = max(x);
topLine = min(y);
bottomLine = max(y);
width = rightColumn - leftColumn + 1;
height = bottomLine - topLine + 1;
segmentedImage = imcrop(outerImage, [leftColumn, topLine, width, height]);

Best Answer

The binary image is sized for one bitplane, so
outerImage(~binaryImage)
is going to only affect at most the first bitplane of outerImage. You want to have it affect all the bitplanes.
outerImage(repmat(~binaryImage, [1,1, size(outerImage,3))) = 0;