From: Bluebird on 4 Aug 2010 11:35 Hello all, My problem is the follwoing, lets assume i have an image that has multiple people (i.e. two people standing), i want to manually extract the people. I want to do it manually like i am not looking for something fancy or automatic. I just want to view the image then move my mouse around the area, and the output is the selected regions. Looking forward for your answer
From: ImageAnalyst on 4 Aug 2010 11:42 On Aug 4, 11:35 am, "Bluebird " <wlo...(a)ryerson.ca> wrote: > Hello all, > > My problem is the follwoing, lets assume i have an image that has multiple people (i.e. two people standing), i want to manually extract the people. I want to do it manually like i am not looking for something fancy or automatic. I just want to view the image then move my mouse around the area, and the output is the selected regions. > > Looking forward for your answer --------------------------------------------------------------------------------------------------------------------------------- Maybe you could try, or adapt, my freehand masking demo: % Change the current folder to the folder of this m-file. % (The line of code below is from Brett Shoelson of The Mathworks.) 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 = 20; % Read in standard MATLAB gray scale demo image. grayImage = imread('cameraman.tif'); subplot(2, 2, 1); imshow(grayImage, []); title('Original Grayscale Image', 'FontSize', fontSize); set(gcf, 'Position', get(0,'Screensize')); % Maximize figure. message = sprintf('Left click and hold to begin drawing.\nLift mouse button to finish'); uiwait(msgbox(message)); hFH = imfreehand(); % Create a binary image ("mask") from the ROI object. binaryImage = hFH.createMask(); % Display the freehand mask. subplot(2, 2, 2); imshow(binaryImage); title('Binary mask of the region', 'FontSize', fontSize); % Get coordinates of the boundary of the freehand drawn region. structBoundaries = bwboundaries(binaryImage); xy=structBoundaries{1}; % Get n by 2 array of x,y coordinates. x = xy(:, 2); % Columns. y = xy(:, 1); % Rows. subplot(2, 2, 1); % Plot over original image. hold on; % Don't blow away the image. plot(x, y, 'LineWidth', 2); % Burn line into image by setting it to 255 wherever the mask is true. burnedImage = grayImage; burnedImage(binaryImage) = 255; % Display the image with the mask "burned in." subplot(2, 2, 3); imshow(burnedImage); title('New image with mask burned into image', 'FontSize', fontSize); % Mask the image and display it. % Will keep only the part of the image that's inside the mask, zero outside mask. maskedImage = grayImage; maskedImage(~binaryImage) = 0; subplot(2, 2, 4); imshow(maskedImage); title('Masked Image', 'FontSize', fontSize); % Calculate the mean meanGL = mean(maskedImage(binaryImage)); message = sprintf('Mean value within drawn area = %.3f', meanGL); msgbox(message);
From: Bluebird on 4 Aug 2010 11:52 Thank you. It worked perfectly and does exactly what i am looking for.
|
Pages: 1 Prev: D-optimal Design with different levels Next: Why no fminsearch in MultiStart? |