Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
camtron_all
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
kr69sugu
camtron_all
Commits
87c44b0a
Commit
87c44b0a
authored
2 years ago
by
am0ebe
Browse files
Options
Downloads
Patches
Plain Diff
.
parent
79910079
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
b
+1
-1
1 addition, 1 deletion
b
dox/notes_B
+39
-11
39 additions, 11 deletions
dox/notes_B
dox/notes_C
+0
-1
0 additions, 1 deletion
dox/notes_C
dox/notes_D
+0
-1
0 additions, 1 deletion
dox/notes_D
with
40 additions
and
14 deletions
b
@
09360a19
Compare
50f1bc23
...
09360a19
Subproject commit
50f1bc23ad420cb0a36ed18cacdc36a68db7c3c4
Subproject commit
09360a19353558f2fb58580d08aedbb15713c655
This diff is collapsed.
Click to expand it.
dox/notes_B
+
39
−
11
View file @
87c44b0a
###############################
###############################
## PART B
## PART B
###############################
###############################
V
git@gitlab.idiv.de:sugu/vimba.git
git@gitlab.idiv.de:sugu/vimba.git
Does
Does
> camera produces frames and timestamps
> camera produces frames and stores them with timestamps
###############################
use opencv to convert raw cam images into JPEG pixel format
###############################
###############################
* camera sends the raw pictures to a storage server via a network (IP/UDP) connection
* camera sends the raw pictures to a storage server via a network (IP/UDP) connection
* internal real time clock and delivers high precision
time stamps
, which were simultaneous recorded for every frame (use milliseconds)
* internal real time clock and delivers high precision
TIME STAMPS
, which were simultaneous recorded for every frame (use milliseconds)
* compress frames as jpeg
* compress frames as jpeg
used opencv version 3.2 imwrite() with parameter:
used opencv version 3.2 imwrite() with parameter:
IMWRITE_JPEG_QUALITY 100; IMWRITE_JPEG_OPTIMIZE 1; IMWRITE_JPEG_RST_INTERVAL 4;
IMWRITE_JPEG_QUALITY 100; IMWRITE_JPEG_OPTIMIZE 1; IMWRITE_JPEG_RST_INTERVAL 4;
...
@@ -98,17 +98,20 @@ vimbasystem = api
...
@@ -98,17 +98,20 @@ vimbasystem = api
> init / shutdown
> init / shutdown
> access to cams and if's
> access to cams and if's
cam
api > cam > feature (settings like exposuretime or pixelformat)
interface
cam > frames > img data
> ancillary data (cam settings at time of acquisition -> can be queried via feature access)
api > interface > settings/feature
frames = img data + ancillaryData
frames = img data + ancillaryData
> create by api and queue in cam
> create by api and queue in cam
> when image is rcv, frame will be filled -> notification
> when image is rcv, frame will be filled -> notification
> process and re-enqueue
1111
> process and re-enqueue
at cam
GenICam - camera standard
GenICam - camera standard
TL - Transport Layer - transports data from cam to sw
TL - Transport Layer - transports data from cam to sw
Buffer management
Buffer management
###############################
###############################
Every image acquisition requires allocating memory and handling frame buffers:
Every image acquisition requires allocating memory and handling frame buffers:
...
@@ -116,11 +119,33 @@ Every image acquisition requires allocating memory and handling frame buffers:
...
@@ -116,11 +119,33 @@ Every image acquisition requires allocating memory and handling frame buffers:
2. Announce the buffer (this hands the frame buffer over to the API).
2. Announce the buffer (this hands the frame buffer over to the API).
3. Queue a frame (prepare buffer to be filled).
3. Queue a frame (prepare buffer to be filled).
4. Vimba fills the buffer with an image from the camera.
4. Vimba fills the buffer with an image from the camera.
5. Vimba returns the filled buffer (and hands it over to the user).
5. Vimba returns the filled buffer (and hands it over to the user
-> notification
).
6. Work with the image
6. Work with the image
> store as jpeg
> send to HPC
7. Requeue the frame to hand it over to the API
7. Requeue the frame to hand it over to the API
Img Capture and Acquisition C++
###############################
sync acquisition <> async acquisition
sync acquisition <> async acquisition
Vimba API *captures* images <> camera *acquires* images
1. prepare img acquisition
cam.AnnounceFrame() # make vimba aware of buffer
cam.StartCapture() # start capture engine
cam.QueueFrame() # hand buffer to vimba
2. start img acquisition
AcquisitionStart()
3. image in callback func
cam.QueueFrame()
4. stop img acquisition
AcquisitionStop()
5. clean up
cam.EndCapture()
cam.FlushQueue()
cam.RevokeAllFrames()
>> conveninence funcs()
1 buffer | X buffers
1 buffer | X buffers
restrained fps | unrestrained fps
restrained fps | unrestrained fps
| while working with img, the nxt img is acquired!
| while working with img, the nxt img is acquired!
...
@@ -131,14 +156,17 @@ Notifications
...
@@ -131,14 +156,17 @@ Notifications
> register event handler
> register event handler
> different thread -> !!caution! when using shared data
> different thread -> !!caution! when using shared data
> ! Not all func from API can be called in event handler
> ! Not all func from API can be called in event handler
> during event handler Vimba API might be blocked -> exit AFA
P
> during event handler Vimba API might be blocked -> exit AFA
>
P
>
difference?
difference?
AcquisitionFrameRateAbs <> AcquisitionFrameRate
AcquisitionFrameRateAbs <> AcquisitionFrameRate
-> cam feature? (== cam setting)
Frame:
##
Frame:
getImage - img data
getImage - img data
getBuffer - img data + ancillary data
getBuffer - img data + ancillary data
GetAncillaryData - ancillary data [~ genicam chunk data]
GetAncillaryData - ancillary data [~ genicam chunk data]
...
...
This diff is collapsed.
Click to expand it.
dox/notes_C
+
0
−
1
View file @
87c44b0a
###############################
###############################
## PART C
## PART C
###############################
###############################
CT, bgs
git@gitlab.idiv.de:sugu/camtron.git
git@gitlab.idiv.de:sugu/camtron.git
Does
Does
...
...
This diff is collapsed.
Click to expand it.
dox/notes_D
+
0
−
1
View file @
87c44b0a
###########################
###########################
## PART D
## PART D
###########################
###########################
CTD
git@gitlab.idiv.de:tb55xemi/itrackl-process-scripts.git
git@gitlab.idiv.de:tb55xemi/itrackl-process-scripts.git
Does:
Does:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment