MATLAB biedt verschillende manieren om video vast te leggen, afhankelijk van uw behoeften en de hardware die u gebruikt. Hier zijn voorbeelden van het gebruik van de `imaq`-toolbox (voor meer controle en verschillende apparaten) en de `video-input`-functie (eenvoudiger, maar potentieel minder flexibel).
Methode 1:de `imaq`-toolbox gebruiken (aanbevolen voor de meeste gevallen)
Deze methode biedt meer flexibiliteit en controle over het acquisitieproces, waardoor u met verschillende videobronnen (webcams, capture-kaarten, enz.) kunt werken. U hebt de Image Acquisition Toolbox nodig.
```matlab
% Vervang 'winvideo' door de juiste adapter voor uw apparaat.
% Gebruik imaqhwinfo om beschikbare adapters en apparaten weer te geven.
vid =video-invoer('winvideo', 1); % 1 vertegenwoordigt doorgaans de eerste camera
% Eigenschappen instellen (pas deze indien nodig aan)
set(vid, 'FramesPerTrigger', 1); % Leg één frame tegelijk vast
set(vid, 'TriggerRepeat', Inf); % Continu vastleggen
set(vid, 'ReturnedColorSpace', 'rgb'); % Ontvang RGB-afbeeldingen
% Start de video-acquisitie
begin(vid);
% Frames vastleggen (voorbeeld:10 seconden vastleggen)
tic;
terwijl toc <10
[frame, tijd, ~] =getdata(vid, 1); % Ontvang één frame
imshow(frame); % Geef het kader weer
title(sprintf('Tijd:%.2f seconden', tijd));
getrokken; % Werk het scherm bij
einde
% Stop de video-acquisitie
stop(vid);
verwijderen(vid);
duidelijke video;
```
Voordat je dit uitvoert:
1. Controleer uw adapter: Voer `imaqhwinfo` uit in het opdrachtvenster om te zien welke video-invoerapparaten beschikbaar zijn op uw systeem. Dit geeft u de juiste adapterstring die u moet gebruiken (bijvoorbeeld 'winvideo', 'gige', 'gentl'). Het nummer achter de adapter (bijvoorbeeld `1`) selecteert een specifiek apparaat als er meerdere aanwezig zijn.
2. Installeer de Image Acquisition Toolbox: Als u dit niet heeft, moet u het mogelijk toevoegen aan uw MATLAB-installatie.
Methode 2:`videoinput` gebruiken (eenvoudiger, minder veelzijdig)
Deze functie is een wrapper op een hoger niveau rond `imaq`. Het is gemakkelijker te gebruiken voor eenvoudige webcam-opnamen, maar biedt minder fijnmazige controle.
```matlab
vid =video-invoer('winvideo', 1); % Vervang 1 indien nodig door de juiste apparaat-ID
set(vid, 'FramesPerTrigger', 1);
set(vid, 'TriggerRepeat', Inf);
voorbeeld(vid); % Voorbeeld starten
% Frames vastleggen (voorbeeld:10 frames vastleggen)
voor ik =1:10
img =krijgt momentopname(vid);
imshow(img);
pauze(0,1); % Kleine pauze om de afbeeldingen te bekijken
einde
stop(vid);
verwijderen(vid);
duidelijke video;
```
Belangrijke overwegingen:
* Foutafhandeling: De bovenstaande code mist foutafhandeling. In een productieomgeving moet u `try-catch`-blokken toevoegen om potentiële fouten af te handelen (bijvoorbeeld apparaat niet gevonden, verbindingsproblemen).
* Framesnelheid: Je kunt de framesnelheid regelen met behulp van eigenschappen als `vid.FramesPerTrigger` en `vid.TriggerRepeat`. Voor continu vastleggen stelt u `FramesPerTrigger` in op een hogere waarde of `Inf` en past u de lus dienovereenkomstig aan.
* Oplossing: De resolutie van de opgenomen video is afhankelijk van uw camera en kan worden aangepast met behulp van eigenschappen als `vid.VideoResolution`.
* Bestanden opslaan: Om de vastgelegde video op te slaan, moet u functies zoals `imwrite` gebruiken om individuele frames als afbeeldingen op te slaan (bijvoorbeeld in een reeks JPG's of PNG's) of een videoschrijverobject gebruiken (`VideoWriter`) om een videobestand te maken (bijvoorbeeld AVI, MP4).
Vergeet niet om `'winvideo', 1` te vervangen door de juiste adapter en apparaat-ID voor uw specifieke installatie. Raadpleeg altijd de MATLAB-documentatie voor de `imaq` toolbox en `videoinput` functie voor gedetailleerde informatie en geavanceerde opties. |