MATLAB: Is it possible to resize a region in a grayscale image

MATLAB: Is it possible to resize a region in a grayscale image

image analysisimage processingImage Processing Toolbox

Is it possible to resize a white blob in a grayscale image without changing anything else? If so, how can I do so? I am trying to resize the largest blob while keeping the size of the other regions the same.

Best Answer

  • The steps for this is to extract the largest Blob, resize it as per requirement, again map it back to the original image to increase the size of it.
    img = imread('blobDilate.jpg');
    img = rgb2gray(img);
    img(img < 50) = 0;
    [rows, cols] = size(img);
    figure, imshow(img), title('Original Image');
    % Get the max Blob
    largestBlob = bwareafilt(logical(img), 1);
    figure, imshow(largestBlob)
    % increase the size [+50, +50]of the Blob and remove the added rows, cols
    resizeImg = imresize(largestBlob, [rows + 50, cols + 50]); % You can change this according your requirement
    % remove added rows, cols
    removeRows = [1:25, size(resizeImg,1)-24:size(resizeImg,1)];
    removeCols = [1:25, size(resizeImg,2)-24:size(resizeImg,2)];
    resizeImg(removeRows,:) = [];
    resizeImg(:,removeCols) = [];
    figure, imshow(resizeImg)
    % New Blob Area
    props = regionprops(logical(resizeImg),'Area');
    resizedBlobArea = [props.Area];
    fprintf('%s %dn', 'newResizedBlobArea: ', resizedBlobArea)
    % final Image
    finalImg = logical(img + uint8(resizeImg));
    figure, imshow(finalImg), title('Largest Blob resized Image')
  • Add a Comment

    Your email address will not be published. Required fields are marked *