Académique Documents
Professionnel Documents
Culture Documents
Objectif
Soit une caméra qui filme le trafic des véhicules. On demande d’écrire un programme pour
détecter un véhicule et calculer sa vitesse.
>> get(obj)
General Settings:
Duration = 14.8000
Name = traffic.mp4
Path = D:\Cours\Traitement_Image\Master\camera
Tag =
Type = VideoReader
UserData = []
Video Settings:
BitsPerPixel = 24
FrameRate = 10
Height = 408
NumberOfFrames = 148
VideoFormat = RGB24
Width = 420
>> implay('traffic.mp4');
obj = VideoReader('traffic.avi');
darkCar = rgb2gray(read(obj,71));
darkCarValue = 50;
noDarkCar = imextendedmax(darkCar, darkCarValue);
imshow(darkCar)
figure, imshow(noDarkCar)
Master GE Traitement d’images TP1
obj = VideoReader('traffic.avi');
darkCar = rgb2gray(read(trafficObj,71));
darkCarValue = 50;
noDarkCar = imextendedmax(darkCar, darkCarValue);
sedisk = strel('disk',2);
noSmallStructures = imopen(noDarkCar, sedisk);
subplot(131); imshow(darkCar)
subplot(132); imshow(noDarkCar)
subplot(133); imshow(noSmallStructures)
Nous avons supprimé les petits objets en comparant la taille de notre "disque" qui est créé par
la fonction strel (). Cette fonction crée des éléments structurant morphologiques comme
«balle», «carré», «ligne», etc. La fonction imopen () exécute ensuite la morphologie de la
façon suivante :
IM2 = imopen (IM, SE) effectue l'ouverture morphologique sur l’image de niveau de gris IM
avec l'élément structurant SE. L'argument SE doit être un objet unique d'élément structurant.
Master GE Traitement d’images TP1
L'opération d'ouverture morphologique est une érosion suivie d'une dilatation, en utilisant le
même élément structurant pour les deux opérations.
darkCarValue = 50;
darkCar = rgb2gray(read(obj,71));
noDarkCar = imextendedmax(darkCar, darkCarValue);
sedisk = strel('disk',2);
noSmallStructures = imopen(noDarkCar, sedisk);
for k = 1 : nframes
singleFrame = read(obj, k);
I = rgb2gray(singleFrame);
noDarkCars = imextendedmax(I, darkCarValue);
frameRate = get(trafficObj,'FrameRate');
implay(taggedCars,frameRate);