how can i recombine image after i separated it?

1 次查看(过去 30 天)
how can i recombine an image after i used imfreehand function to separate region of interisted and then i processed region of non interest, now i want to combine region of interst with region of non interest. any help is apprecited.

回答(2 个)

Walter Roberson
Walter Roberson 2012-12-28
Copy the old image to a new array, and copy the roi points in the processed image on top of the roi points in the new array.

Image Analyst
Image Analyst 2012-12-28
You mean like this demo:
% Demo to have the user freehand draw an irregular shape over
% a gray scale image, have it save that part, blur the image,
% and to write the saved pixels over the blurred image.
% Change the current folder to the folder of this m-file.
if(~isdeployed)
cd(fileparts(which(mfilename)));
end
clc; % Clear command window.
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
imtool close all; % Close all figure windows created by imtool.
workspace; % Make sure the workspace panel is showing.
fontSize = 16;
% Read in a standard MATLAB gray scale demo image.
folder = fullfile(matlabroot, '\toolbox\images\imdemos');
baseFileName = 'cameraman.tif';
% Get the full filename, with path prepended.
fullFileName = fullfile(folder, baseFileName);
% Check if file exists.
if ~exist(fullFileName, 'file')
% File doesn't exist -- didn't find it there. Check the search path for it.
fullFileName = baseFileName; % No path this time.
if ~exist(fullFileName, 'file')
% Still didn't find it. Alert user.
errorMessage = sprintf('Error: %s does not exist in the search path folders.', fullFileName);
uiwait(warndlg(errorMessage));
return;
end
end
grayImage = imread(fullFileName);
imshow(grayImage, []);
axis on;
title('Original Grayscale Image', 'FontSize', fontSize);
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
message = sprintf('Left click and hold to begin drawing.\nSimply lift the mouse button to finish');
uiwait(msgbox(message));
hFH = imfreehand();
% Create a binary image ("mask") from the ROI object.
binaryImage = hFH.createMask();
xy = hFH.getPosition;
% Save the original pixels in the mask
savedPixels = grayImage(binaryImage);
% Now make it smaller so we can show more images.
subplot(2, 3, 1);
imshow(grayImage, []);
axis on;
drawnow;
title('Original Grayscale Image', 'FontSize', fontSize);
% Display the freehand mask.
subplot(2, 3, 2);
imshow(binaryImage);
axis on;
title('Binary mask of the region', 'FontSize', fontSize);
% Mask the image and display it.
% Will keep only the part of the image that's inside the mask, zero outside mask.
blackMaskedImage = grayImage;
blackMaskedImage(~binaryImage) = 0;
subplot(2, 3, 3);
imshow(blackMaskedImage);
axis on;
title('Masked Outside Region', 'FontSize', fontSize);
% Now blur the image
windowWidth = 21;
blurredImage = conv2(grayImage, ones(windowWidth)/windowWidth^2, 'same');
subplot(2, 3, 4);
imshow(blurredImage, []);
title('Blurred image', 'FontSize', fontSize);
% Now replace the pixels with the original pixels
blurredImage(binaryImage) = savedPixels;
subplot(2, 3, 5);
imshow(blurredImage, []);
title('Blurred image plus original saved pixels', 'FontSize', fontSize);

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by