Image acquisition package: Difference between revisions
(created page) |
No edit summary |
||
Line 4: | Line 4: | ||
== Example session == | == Example session == | ||
Lines starting with $ are commands executed on the octave prompt. | |||
Let's load the package and list available hardware | |||
<code> | |||
$ pkg load image-acquisition | |||
$ imaqhwinfo | |||
ans = | |||
scalar structure containing the fields: | |||
driver = uvcvideo | |||
card = UVC Camera (046d:0825) | |||
bus_info = usb-0000:00:16.2-2 | |||
version = 3.2.51 | |||
capabilities = 83886081 | |||
device = /dev/video0 | |||
</code> | |||
$ | |||
$ obj = videoinput("v4l2", "/dev/video0") | |||
obj = videoinput for v4l2 | |||
device = /dev/video0 | |||
driver = uvcvideo | |||
card = UVC Camera (046d:0825) | |||
VideoInput = 0 | |||
VideoResolution = 320 x 240 px | |||
VideoFrameInterval = 1/30 s (30.0 fps) | |||
$ get(obj) | |||
ans = | |||
{ | |||
[1,1] = SelectedSourceName | |||
[2,1] = DeviceCapabilities | |||
[3,1] = VideoInput | |||
[4,1] = VideoResolution | |||
[5,1] = VideoFrameInterval | |||
[6,1] = VideoFormat | |||
[7,1] = brightness | |||
[8,1] = contrast | |||
[9,1] = saturation | |||
[10,1] = white_balance_temperature_auto | |||
[11,1] = gain | |||
[12,1] = power_line_frequency | |||
[13,1] = white_balance_temperature | |||
[14,1] = sharpness | |||
[15,1] = backlight_compensation | |||
[16,1] = exposure_auto | |||
[17,1] = exposure_absolute | |||
[18,1] = exposure_auto_priority | |||
} | |||
$ | |||
$ get(obj, "DeviceCapabilities") | |||
ans = | |||
scalar structure containing the fields: | |||
driver = uvcvideo | |||
card = UVC Camera (046d:0825) | |||
bus_info = usb-0000:00:16.2-2 | |||
version = 3.2.51 | |||
capabilities = 83886081 | |||
$ | |||
$ set(obj, "VideoResolution") | |||
ans = | |||
640 480 | |||
160 120 | |||
176 144 | |||
320 176 | |||
320 240 | |||
352 288 | |||
432 240 | |||
544 288 | |||
640 360 | |||
752 416 | |||
800 448 | |||
800 600 | |||
864 480 | |||
960 544 | |||
960 720 | |||
1024 576 | |||
1184 656 | |||
1280 720 | |||
1280 960 | |||
$ set(obj, "VideoResolution", [320 240]) | |||
$ | |||
$ get(obj, "brightness") | |||
ans = 100 | |||
$ set(obj, "brightness") | |||
ans = | |||
scalar structure containing the fields: | |||
min = 0 | |||
max = 255 | |||
step = 1 | |||
default = 128 | |||
$ set(obj, "brightness", 100) | |||
$ | |||
$ preview(obj) | |||
== Using v4l2loopback for tests == | == Using v4l2loopback for tests == |
Revision as of 12:20, 18 January 2014
The image_acquisition package is part of the Octave Forge project.
There is not release package yet but if you can get the source here [1]
Example session
Lines starting with $ are commands executed on the octave prompt.
Let's load the package and list available hardware
$ pkg load image-acquisition
$ imaqhwinfo
ans =
scalar structure containing the fields:
driver = uvcvideo
card = UVC Camera (046d:0825)
bus_info = usb-0000:00:16.2-2
version = 3.2.51
capabilities = 83886081
device = /dev/video0
$
$ obj = videoinput("v4l2", "/dev/video0")
obj = videoinput for v4l2
device = /dev/video0 driver = uvcvideo card = UVC Camera (046d:0825) VideoInput = 0 VideoResolution = 320 x 240 px VideoFrameInterval = 1/30 s (30.0 fps)
$ get(obj) ans = {
[1,1] = SelectedSourceName [2,1] = DeviceCapabilities [3,1] = VideoInput [4,1] = VideoResolution [5,1] = VideoFrameInterval [6,1] = VideoFormat [7,1] = brightness [8,1] = contrast [9,1] = saturation [10,1] = white_balance_temperature_auto [11,1] = gain [12,1] = power_line_frequency [13,1] = white_balance_temperature [14,1] = sharpness [15,1] = backlight_compensation [16,1] = exposure_auto [17,1] = exposure_absolute [18,1] = exposure_auto_priority
} $ $ get(obj, "DeviceCapabilities") ans =
scalar structure containing the fields:
driver = uvcvideo card = UVC Camera (046d:0825) bus_info = usb-0000:00:16.2-2 version = 3.2.51 capabilities = 83886081
$ $ set(obj, "VideoResolution") ans =
640 480 160 120 176 144 320 176 320 240 352 288 432 240 544 288 640 360 752 416 800 448 800 600 864 480 960 544 960 720 1024 576 1184 656 1280 720 1280 960
$ set(obj, "VideoResolution", [320 240]) $ $ get(obj, "brightness") ans = 100 $ set(obj, "brightness") ans =
scalar structure containing the fields:
min = 0 max = 255 step = 1 default = 128
$ set(obj, "brightness", 100) $ $ preview(obj)
Using v4l2loopback for tests
If you don't have a v4l2 device but test the package you could create a loopback device:
modprobe v4l2loopback gst-launch-0.10 videotestsrc ! v4l2sink device=/dev/video0
Reporting bugs
Please install v4l2-ctl (for example from Debian package v4l-utils), run the following commands and attach the output.
$ v4l2-ctl -w --list-devices $ v4l2-ctl -w -D $ v4l2-ctl -w -L $ v4l2-ctl -w -n $ v4l2-ctl -w --list-formats
Enable libv4l2 logging:
$ export LIBV4L2_LOG_FILENAME=libv4l2_debug.log
Start octave and execute your commands/scripts which show the problem.
Please include the whole octave session beginning with the start of octave. There might be some warnings like "warning: function xyz shadows a built-in function" at start.
Exit octave and add libv4l2_debug.log to your bug report
Consider running the included tests:
test @videoinput/videoinput test @videoinput/get test @videoinput/set test @videoinput/getsnapshot