Segmenting picture and placing into new picture using coordinates

3 views (last 30 days)
Hi I am having trouble uploading pictures or programs to this question. Basically this program I wrote segments the point of interest that i want and tells the coordinates of the center of that object. It also draws an outline of the segmented picture in the original program. now how would I take that outline and place it in a completely new picture. This program segments a heart from a blank background. Now I want to place that heart using the coordinates onto a background of a human. Im a basic beginner. Thank you for all your help!!
clc; close all; imtool close all; clear; workspace;
%Upload photo a=imread('C:\Users\a.c.killam\Pictures\a.jpg');
%Convert to Gray image I=rgb2gray(a);
%Find sobel Edge [~, threshold] = edge(I, 'sobel'); fudgeFactor = .99; E1 = edge(I,'sobel', threshold * fudgeFactor); figure, imshow(E1), title('sobel edge');
%Find roberts edge [~, threshold] = edge(I, 'roberts'); fudgeFactor = .99; E2 = edge(I,'roberts', threshold * fudgeFactor); figure, imshow(E2), title('roberts edge');
%Combine the two edged pictures Edge=E1+E2; figure, imshow(Edge), title('combined edge');
%Dilate edges se90 = strel('line', 9, 90); se0 = strel('line', 9, 0); Dilate= imdilate(Edge, [se90 se0]); figure, imshow(Dilate), title('dilated edge');
%Fill Interior Gaps Fill = imfill(Dilate, 'holes'); figure, imshow(Fill); title('Filled Gaps');
%Clear smaller pixels Clear=bwareaopen(Fill,100000); figure, imshow(Clear), title('cleared pixels');
%Clear Border ClearBorder = imclearborder(Clear); figure, imshow(ClearBorder), title('cleared border');
%Apply smoothing function seD = strel('diamond',9); AlmostFinal = imerode(ClearBorder,seD); Final = imerode(AlmostFinal,seD); figure, imshow(Final), title('final segmented image');
%Outline original image Outline = bwperim(Final,8); Segmentoutline = I; Segmentoutline(Outline) = 255;
%Dilate outlined original image se90 = strel('line', 9, 90); se0 = strel('line', 9, 0); Segmentoutlinedilate= imdilate(Segmentoutline, [se90 se0]); figure, imshow(Segmentoutlinedilate), title('outlined original image');
%Find Coordinates of Center s = regionprops(Final, 'centroid'); centroids = cat(1, s.Centroid); imshow(Segmentoutlinedilate) hold on plot(centroids(:,1), centroids(:,2), 'r*') hold off your_string = strcat('Center Coordinates','====', num2str(centroids(:,1)),'--', num2str(centroids(:,2))); text(-50,-50,your_string)

Answers (0)

Categories

Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!