Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I want someone to explain this code to me, most of the code is explained in comments, but some isn't explained , please explain it.

I want someone to explain this code to me, most of the code is explained in comments, but some isn't explained, please explain it.

And I want to know which Functions, Arrays, Loops, Classes OR any other thing like that is used in this code, please mention these separately at last by giving reference to above code.

The proposal of the project of which the code is for your help is mentioned below:

Project Title:

Delaunay Triangulation of a Cartoon Character

Introduction:

The accurate prediction of pedestrian motion can be used to assess the potential safety hazards and operational performance at events where many individuals are gathered. Examples of such situations are sport and music events, cinemas and theatres, museums, conference centers, places of pilgrimage and worship, as well as street demonstrations. Evacuation from airplanes, ships, trains and buildings also represent cases where the prediction of pedestrian motion can be used advantageously.

The Delaunay triangulation is an automatic generation algorithm of a simplex mesh and is based on Definition 2 of the process. The end result is that all elements are triangular which forms the simplest constant strain elements. Delaunay triangulations are widely used in scientific computing in many diverse applications. While there are numerous algorithms for computing triangulations, it is the favorable geometric properties of the Delaunay triangulation that make it so useful.

Purpose:

Over the last decade, a considerable amount of research has been devoted to the computational prediction of pedestrian motion and crowd dynamics. The autonomy of a virtual human is defined by its capacity to perceive, act and decide of its actions. The behavior is usually described through several simple skills that can be mixed to generate more complex and credible behavior. Motion detection of any human is necessary in a lot of researches these days.

Working:

Our Goal is the motion detection of any character. This project will focus the Delaunay Triangulation technique for

Seed Point Analysis

Vision.Fore-ground

Frame Centroids & Corners

count of number of holes, edges, triangles

Tools:

MATLAB will be used to work on this project.

----------------------------------------------------------------------------------------------------

Code you need to explain:

clc;

close all;

clear;

%%

% Seed Point Analysis

% Vision.Foreground

% Frame Centroids & Corners

% count of number of holes, edges, triangles

videoReader = vision.VideoFileReader('C:\Users\ahmad\Downloads\Downloads (O)\cg\Delaunay Project\Videos\Video.mp4'); % Read sample matlab video

writerObj = VideoWriter('C:\Users\ahmad\Downloads\Downloads (O)\cg\Delaunay Project\Videos\OutputVideo','MPEG-4'); % Create video writer object

open(writerObj); % Open the video writer

NoOfSecs = 5;

NoOfFrames = NoOfSecs*30;

detector = vision.ForegroundDetector;

NoOfHoles = zeros (1, NoOfFrames);

NoOfEdges = zeros (1, NoOfFrames);

NoOfTrigl = zeros (1, NoOfFrames);

for count = 1:NoOfFrames % The number of frames to process

disp(count) % Display the current frame number

frame = step(videoReader); % Read the next video frame

frameGray = rgb2gray(frame); % Convert the frame to grayscale

if (count ==1)

BkFrame = frameGray;

end

foreground = step(detector, frameGray);

% Remove blobs smaller than 10 (Turn dark foreground to white)

BW_filled = bwareaopen(foreground, 100);

frameBW4 = imfill(BW_filled,'holes');

imshow (frame);

hold on;

% Extract Frame Centroids

s = regionprops(frameBW4,'centroid'); % Get the stats of the blobs

frameCentroids = cat(1,s.Centroid); % Exatract the centroids

% Compute Area of Shapes

paras = regionprops(frameBW4,frameGray,'Centroid','Area','FilledArea','MinIntensity');

area = cat(1,paras.Area);

% Extract Frame Corners

frameCorners = corner(frameGray,100);

% Plot Frame Centroids

[a, b] = size(frameCentroids);

% combine Frame Corners and Centroids

if (a > 2)

combineCorCenX = ([(frameCentroids(:,1))' (frameCorners(:,1))'])';

combineCorCenY = ([(frameCentroids(:,2))' (frameCorners(:,2))'])';

else

combineCorCenX = frameCorners(:,1);

combineCorCenY = frameCorners(:,2);

end

tri=delaunayTriangulation(combineCorCenX, combineCorCenY);

triplot (tri.ConnectivityList, combineCorCenX, combineCorCenY,'r') ;

plot(combineCorCenX,combineCorCenY,'wo','MarkerEdgeColor','k','MarkerFaceColor','w','MarkerSize',3);

nodes = tri.ConnectivityList ; % nodal connectivity matrix

coor = tri.Points ; % coordinates

ntri = size(nodes,1) ; % number of triangles

[NoOfHoles(1,count),~] = size(combineCorCenX);

NoOfTrigl(1,count) = ntri;

% Compute number of edges in Vortex Nerve

[NoOfEdges(1,count),~] = size(edges(tri));

BkFrame = frameGray;

writeFrame = getframe; % Capture the current displayed frame

pause(0.01);

close(); % Close the figure

writeVideo(writerObj,writeFrame.cdata); % Write the captured frame to the video

% end

end

close(writerObj); % Close the video writer object

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Concepts

Authors: David Kroenke, David Auer, Scott Vandenberg, Robert Yoder

8th Edition

013460153X, 978-0134601533

More Books

Students also viewed these Databases questions

Question

Why is the System Build Process an iterative process?

Answered: 1 week ago