Untitled

mail@pastecode.io avatar
unknown
matlab
13 days ago
2.0 kB
2
Indexable
Never
% Se verifica si el soporte para la webcam está instalado
if ~exist('webcamlist', 'file')
    error('El soporte para la webcam no está instalado. Es necesario instalarlo antes de continuar.');
end

% Se carga la red preentrenada AlexNet
net = alexnet;

% Se prepara la webcam para capturar imágenes
cam = webcam;

% Se obtiene el tamaño de entrada requerido por la red AlexNet
inputSize = net.Layers(1).InputSize(1:2);

% Se crea una ventana para mostrar la imagen capturada
figure;

% Se configura el factor de zoom para obtener un formato vertical
zoomFactor = 2; % Este valor puede ser ajustado para incrementar el zoom

while true
    % Se captura una imagen desde la webcam
    img = snapshot(cam);
    
    % Se obtiene el tamaño actual de la imagen capturada
    [height, width, ~] = size(img);
    
    % Se calculan las coordenadas necesarias para recortar la imagen en formato vertical
    centerX = width / 2;
    cropWidth = width / zoomFactor;
    
    % Se define el área que será recortada en formato vertical
    xStart = round(centerX - cropWidth / 2);
    xEnd = round(centerX + cropWidth / 2);
    
    % Se asegura de que las coordenadas de recorte estén dentro de los límites de la imagen
    xStart = max(1, xStart);
    xEnd = min(width, xEnd);
    
    % Se recorta la imagen para obtener un formato vertical
    imgCropped = img(:, xStart:xEnd, :);
    
    % Se cambia el tamaño de la imagen recortada para que coincida con el tamaño de entrada de AlexNet
    imgResized = imresize(imgCropped, inputSize);
    
    % Se clasifica la imagen utilizando la red AlexNet
    label = classify(net, imgResized);
    
    % Se muestra la imagen recortada en formato vertical junto con la etiqueta de clasificación
    imshow(imgCropped);
    title(char(label));
    
    % Se pausa brevemente para permitir la visualización de la imagen
    pause(0.1);
end

% Al finalizar, se libera la webcam
clear cam;
Leave a Comment