% Dado es el código MATLAB que puede usar para identificación
% Paso 1: Acceda al video con VideoReader
trafficVid = VideoReader (‘traffic.mj2’);
obtener (trafficVid);
%%
% Paso 2: Explore el video con IMPLAY
implay (‘traffic.mj2’);
%%
% Paso 3: Desarrolle su algoritmo
darkCarValue = 50;
darkCar = rgb2gray (read (trafficVid, 71));
noDarkCar = imextendedmax (darkCar, darkCarValue);
imshow (darkCar);
figura, imshow (noDarkCar);
sedisk = strel (‘disco’, 2);
noSmallStructures = imopen (noDarkCar, sedisk);
imshow (noSmallStructures)
%%
% Paso 4: aplicar el algoritmo al video
nframes = trafficVid.NumberOfFrames;
I = leer (trafficVid, 1);
taggedCars = ceros ([tamaño (I, 1) tamaño (I, 2) 3 nframes], clase (I));
- ¿Cuáles son algunas recomendaciones sobre un curso / tutorial para el procesamiento posterior de grabaciones Plex?
- Si veo un video en YouTube, ¿el propietario del video ve al usuario que lo vio?
- ¿Por qué se congelan los videos en streaming?
- ¿Cuál es el mejor para transmitir video 4K, Amazon Fire TV o Roku 4?
- Al descargar cualquier serie de TV por torrents, ¿estoy produciendo algún daño al interés comercial de sus creadores? ¿Cómo?
para k = 1: nframes
singleFrame = read (trafficVid, k);
% Convertir a escala de grises para realizar el procesamiento morfológico.
I = rgb2gray (singleFrame);
% Retirar autos oscuros.
noDarkCars = imextendedmax (I, darkCarValue);
% Eliminar las marcas de carril y otras estructuras sin forma de disco.
noSmallStructures = imopen (noDarkCars, sedisk);
% Eliminar estructuras pequeñas.
noSmallStructures = bwareaopen (noSmallStructures, 150);
% Obtenga el área y el centroide de cada objeto restante en el marco. los
El% objeto con el área más grande es el automóvil de color claro. Crear una copia
% del cuadro original y etiquetar el automóvil cambiando el píxel del centroide
% valor a rojo.
taggedCars (:,:,:, k) = singleFrame;
stats = regionprops (noSmallStructures, {‘Centroid’, ‘Area’});
if ~ isempty ([stats.Area])
areaArray = [stats.Area];
[basura, idx] = max (areaArray);
c = stats (idx) .Centroid;
c = piso (fliplr (c));
ancho = 2;
fila = c (1) -ancho: c (1) + ancho;
col = c (2) -ancho: c (2) + ancho;
taggedCars (fila, col, 1, k) = 255;
taggedCars (fila, col, 2, k) = 0;
taggedCars (fila, col, 3, k) = 0;
fin
fin
%%
% Paso 5: Visualizar resultados
frameRate = trafficVid.FrameRate;
implay (taggedCars, frameRate);