WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

image acquisition tool. Alle 5sec. ein Bild bis 3 Bilder

 

Gorubasu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 12:29     Titel: image acquisition tool. Alle 5sec. ein Bild bis 3 Bilder
  Antworten mit Zitat      
Hi Leute,
ich kann zwar die Befehle vom image acquisition tool nutzten aber nicht die Oberfläche davon.

Ich bin ein bissl verloren, wie ich es anstellen kann, das ich x Bilder alle y sekunden mache und dann speichere. Also z.B nachdem man auf den Start Button gedrückt hat, sollen alle 5 Sekunden ein Bild mit 1sec. Belichtungszeit gemacht werden, bis man 3 Bilder hat, danach die Daten an Matlab geschickt werden.

Code:

function start_Callback(hObject, eventdata, handles)

anzahl=str2num(get(handles.anzahl,'String'));
vid = videoinput('gentl', 1, 'Mono12');
src = getselectedsource(vid);
start(vid)

data = getdata(vid,anzahl);

stop(vid)
 



Ich habe jetzt das Problem die 5 Sekunden und 3 Bilder im Programmcode unterzubringen. Belichtungszeit müsste ExposureTime = 1 sein. Kann mir wer helfen?





Folgende Parameter stehen mir zur Verfügung und können zum Teil verändert werden.

get(vid)
General Settings:
DeviceID = 1
DiskLogger = []
DiskLoggerFrameCount = 0
EventLog = [1x0 struct]
FrameGrabInterval = 1
FramesAcquired = 0
FramesAvailable = 0
FramesPerTrigger = 10
Logging = off
LoggingMode = memory
Name = Mono8-gentl-1
NumberOfBands = 1
Previewing = off
ROIPosition = [0 0 2048 2048]
Running = off
Tag =
Timeout = 10
Type = videoinput
UserData = []
VideoFormat = Mono8
VideoResolution = [2048 2048]

Color Space Settings:
BayerSensorAlignment = grbg
ReturnedColorSpace = grayscale

Callback Function Settings:
ErrorFcn = @imaqcallback
FramesAcquiredFcn = []
FramesAcquiredFcnCount = 0
StartFcn = []
StopFcn = []
TimerFcn = []
TimerPeriod = 1
TriggerFcn = []

Trigger Settings:
InitialTriggerTime = []
TriggerCondition = none
TriggerFrameDelay = 0
TriggerRepeat = 0
TriggersExecuted = 0
TriggerSource = none
TriggerType = immediate

Acquisition Sources:
SelectedSourceName = Stream0
Source = [1x1 videosource]

src = getselectedsource(vid)

Display Summary for Video Source Object:

General Settings:
Parent = [1x1 videoinput]
Selected = on
SourceName = Stream0
Tag = [0x0 string]
Type = videosource

Device Specific Properties:
AcquisitionBurstFrameCount = 1
AcquisitionFrameRate = 100
AcquisitionFrameRateEnable = False
AllBlackLevel = 0
AllGain = 0
AutoExposureTimeLowerLimit = 100
AutoExposureTimeUpperLimit = 500000
AutoFunctionProfile = MinimizeGain
AutoGainLowerLimit = 0
AutoGainUpperLimit = 23.0593
AutoTargetBrightness = 0.50012
BinningHorizontal = 1
BinningVertical = 1
BslUSBSpeedMode = SuperSpeed
CenterX = False
CenterY = False
Counter1CounterEventSource = FrameStart
Counter1CounterResetActivation = RisingEdge
Counter1CounterResetSource = Off
Counter2CounterEventSource = FrameStart
Counter2CounterResetActivation = RisingEdge
Counter2CounterResetSource = Counter2End
CounterDuration = 1
DecimationVertical = 1
DeviceFirmwareVersion = 106541-24;U;acA2040_90u;V1.1-3;0
DeviceLinkCurrentThroughput = 212350446
DeviceLinkSelector = 0
DeviceLinkSpeed = 500000000
DeviceLinkThroughputLimit = 212352571
DeviceLinkThroughputLimitMode = On
DeviceManufacturerInfo = dtx
DeviceModelName = acA2040-90um
DeviceScanType = Areascan
DeviceSerialNumber = 21771288
DeviceSFNCVersionMajor = 2
DeviceSFNCVersionMinor = 1
DeviceSFNCVersionSubMinor = 0
DeviceUserID = [0x0 string]
DeviceVendorName = Basler
DeviceVersion = 106541-24
ExpertFeature1ExpertFeatureAccessKey = 0
ExpertFeature1ExpertFeatureEnable = False
ExpertFeature2ExpertFeatureAccessKey = 0
ExpertFeature2ExpertFeatureEnable = False
ExpertFeature3ExpertFeatureAccessKey = 0
ExpertFeature3ExpertFeatureEnable = False
ExpertFeature4ExpertFeatureAccessKey = 0
ExpertFeature4ExpertFeatureEnable = False
ExpertFeature5ExpertFeatureAccessKey = 0
ExpertFeature5ExpertFeatureEnable = False
ExpertFeature6ExpertFeatureAccessKey = 0
ExpertFeature6ExpertFeatureEnable = False
ExpertFeature7ExpertFeatureAccessKey = 0
ExpertFeature7ExpertFeatureEnable = False
ExpertFeature8ExpertFeatureAccessKey = 0
ExpertFeature8ExpertFeatureEnable = False
ExposureAuto = Off
ExposureMode = Timed
ExposureOverlapTimeMax = 0
ExposureTime = 10000
FileOpenMode = Read
FrameBurstStartTriggerActivation = RisingEdge
FrameBurstStartTriggerMode = Off
FrameBurstStartTriggerSource = Line1
FrameStartTriggerActivation = RisingEdge
FrameStartTriggerMode = Off
FrameStartTriggerSource = Line1
GainAuto = Off
GainRemoveParameterLimit = False
Gamma = 1
Line1LineDebouncerTime = 0
Line1LineFormat = OptoCoupled
Line1LineInverter = False
Line1LineLogic = Positive
Line1LineMinimumOutputPulseWidth = 0
Line1LineMode = Input
Line1LineOverloadStatus = False
Line1LineStatus = False
Line2LineDebouncerTime = 0
Line2LineFormat = OptoCoupled
Line2LineInverter = False
Line2LineLogic = Negative
Line2LineMinimumOutputPulseWidth = 0
Line2LineMode = Output
Line2LineOverloadStatus = False
Line2LineSource = FrameTriggerWait
Line2LineStatus = True
Line3LineDebouncerTime = 0
Line3LineFormat = TTL
Line3LineInverter = False
Line3LineLogic = Positive
Line3LineMinimumOutputPulseWidth = 0
Line3LineMode = Input
Line3LineOverloadStatus = False
Line3LineStatus = True
Line4LineDebouncerTime = 0
Line4LineFormat = TTL
Line4LineInverter = False
Line4LineLogic = Positive
Line4LineMinimumOutputPulseWidth = 0
Line4LineMode = Input
Line4LineOverloadStatus = False
Line4LineStatus = True
LineStatusAll = 14
PayloadTransferBlockDelay = 250
PixelColorFilter = None
PixelDynamicRangeMax = 4095
PixelDynamicRangeMin = 0
ResultingFrameRate = 25.3139
ReverseX = False
ReverseY = False
ROI1AutoFunctionROIHeight = 2048
ROI1AutoFunctionROIOffsetX = 0
ROI1AutoFunctionROIOffsetY = 0
ROI1AutoFunctionROIUseBrightness = True
ROI1AutoFunctionROIUseWhiteBalance = False
ROI1AutoFunctionROIWidth = 2048
ROI2AutoFunctionROIHeight = 2048
ROI2AutoFunctionROIOffsetX = 0
ROI2AutoFunctionROIOffsetY = 0
ROI2AutoFunctionROIUseBrightness = False
ROI2AutoFunctionROIUseWhiteBalance = True
ROI2AutoFunctionROIWidth = 2048
SensorReadoutTime = 26597
SequencerConfigurationMode = Off
SequencerMode = Off
SequencerPathSelector = 1
SequencerSetActive = 0
SequencerSetNext = 1
SequencerSetSelector = 0
SequencerSetStart = 0
SequencerTriggerActivation = LevelHigh
SequencerTriggerSource = FrameStart
ShutterMode = Global
SIPayloadFinalTransfer1Size = 0
SIPayloadFinalTransfer2Size = 0
SIPayloadTransferCount = 0
SIPayloadTransferSize = 0
TestImageSelector = Off
TimestampLatchValue = 0
TriggerDelay = 0
UserOutput1UserOutputValue = False
UserOutput2UserOutputValue = False
UserOutput3UserOutputValue = False
UserOutputValueAll = 0
Value1UserDefinedValue = 0
Value2UserDefinedValue = 0
Value3UserDefinedValue = 0
Value4UserDefinedValue = 0
Value5UserDefinedValue = 0


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 23.02.2016, 12:51     Titel:
  Antworten mit Zitat      
Hallo,

ich würde dazu einen timer verwenden. Siehe folgendes Bsp.

Code:

t = timer;
t.StartFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
    datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.TimerFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
     datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.StopFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
    datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.Period = 2;
t.TasksToExecute = 3;
t.ExecutionMode = 'fixedRate';
start(t)
 


t.Period setzt du auf 5 sec und t.TasksToExecute anspricht der Anzahl von Ausführungen.
Jetzt musst du noch festlegen, was in der TimerFcn ausgeführt werden soll. Z.B. ein getframe .

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
Gorubasu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2016, 17:45     Titel:
  Antworten mit Zitat      
Das mit den timern ist eine gute idee, aber hilft mir leider nicht so ganz weiter, da ich erst kameraseitig alle Bilder machen will und dann mit getdata an eine Variable übergeben.
Mit dem timer müsste ich dann nachdem jedesmal ein Bild gemacht wurde es mit getdata abspeichern, aber genau das geht leider nicht. ich bin jetzt so weit, das ich zwar die Bidler bekomme aber anstatt alle 5 sekunden macht er die frei von der leber weg alle 0.7 sekunden, egal ob ich ihm sage 5 sekunden oder 7 oder 20.

Hat jemand eine Idee?
Ich denke diese Funktionen kann man nutzten, aber ich versteh sie leider nicht so ganz, mir fehlt das das englisch oder ein besseres Beispiel, wie ich das jetzt verknüpfen soll

TimerFcn = [] http://ch.mathworks.com/help/imaq/t.....?searchHighlight=timerfcn
TimerPeriod = 1 http://ch.mathworks.com/help/imaq/timerperiod.html
TriggerFcn = [] http://ch.mathworks.com/help/imaq/t.....earchHighlight=triggerfcn glaub ich

Code:
vid = videoinput('gentl', 1, 'Mono12');
src = getselectedsource(vid);

% Set video input object properties for this application.
vid.FrameGrabInterval = 1;

%(3*1 Bild alle 5 sekunden)
vid.TriggerRepeat = 3;
vid.FramesPerTrigger = 1;
vid.TimerPeriod = 5;

% Start acquiring frames.
start(vid)
disp('vid started')
% Calculate difference image and display it.
while(isrunning(vid)==1)
    if(vid.FramesAcquired==(vid.TriggerRepeat*vid.FramesPerTrigger))
        stop(vid)
        disp('vid stopped')
    end
end
t = fix(vid.InitialTriggerTime);
[DATA, TIME, METADATA] = getdata(vid,vid.TriggerRepeat*vid.FramesPerTrigger);

Ausgabe

t= 2016 2 23 17 33 11

METADATA
time frameNumebr realtivNumber TriggerIndex
[2016 2 23 17 33 31,3207292556763] 1 1 1
[2016 2 23 17 33 32,0253756046295] 2 1 2
[2016 2 23 17 33 32,7299480438232] 3 1 3

TIME
20,2437987327576
20,9484450817108
21,6530175209045

2016Jahr 2Monat 23Tag - 17Uhr33Min32,7299480...sekunden

DATA
array mit 2048*2048 zahlen (Bilddaten)
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.