You are not logged in.
Hello,
I have installed the latest Matlab R2011a and now I want to process images using my webcam. The Image Acquisition Toolbox is installed.
Here I have documented my installation process:
https://wiki.archlinux.org/index.php/Us … arm#Matlab
-------------------------------
>> imaqhwinfo
ans =
InstalledAdaptors: {'dcam' 'linuxvideo'}
MATLABVersion: '7.12 (R2011a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.1 (R2011a)'
>> imaqhwinfo('linuxvideo')
ans =
AdaptorDllName: '/usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so'
AdaptorDllVersion: '4.1 (R2011a)'
AdaptorName: 'linuxvideo'
DeviceIDs: {[1] [2]}
DeviceInfo: [1x2 struct]
>> imaqhwinfo('linuxvideo',1)
ans =
DefaultFormat: 'RGB3_320x240'
DeviceFileSupported: 0
DeviceName: 'Hercules Dualpix HD Microphone'
DeviceID: 1
ObjectConstructor: 'videoinput('linuxvideo', 1)'
SupportedFormats: {1x20 cell}
>> vid = videoinput('linuxvideo', 1, 'RGB3_320x240');
>> preview(vid)
Warning: Unable to reset the crop area. Perhaps the device is in use.
??? Error using ==> imaqdevice.preview at 181
Could not connect to the image acquisition device. Device may be in use.
>>
--------------------------------
Does anyone have an idea? I do not have an application started which uses my webcam, a reboot didn't work neither.
The command
# lsof | grep video
gives no results, when matlab is not started.
After the first command in matlab
>> imaqhwinfo
# lsof | grep video
gives me
MATLAB 4487 harm mem REG 8,6 83464 1870179 /usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so
MATLAB 4487 4532 harm mem REG 8,6 83464 1870179 /usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so
MATLAB 4487 4533 harm mem REG 8,6 83464 1870179 /usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so
MATLAB 4487 4534 harm mem REG 8,6 83464 1870179 /usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so
.
.
.
MATLAB 4487 4678 harm mem REG 8,6 83464 1870179 /usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so
Further details:
ls -la /dev/video*
lrwxrwxrwx 1 root root 6 29. Apr 10:52 /dev/video -> video0
crw-rw----+ 1 root video 81, 0 29. Apr 10:52 /dev/video0
I hope anybody can help me...
Cheers
Harm
Last edited by der_harm (2011-05-04 07:05:15)
Offline
I'm not sure why you are seeing this message. At this point, we query the device for its default crop parameters and then try to set the crop parameters to those defaults. Normally the only way that this would fail is because the device is currently in use by another application, but that is clearly not the problem here.
I have two questions. First, the output of imaqhwinfo indicates that two devices are present. Do you have two cameras connected to the computer? Second, the format that you are trying to use is 320x240, which appears to be smaller than what your camera is capable of. What happens if you try to use a larger format? You can get a list of the supported formats with the following commands (or use IMAQTOOL):
>> info = imaqhwinfo('linuxvideo', 1);
>> info.SupportedFormats'
Choose the largest format from the list and then try previewing:
>> vid = videoinput('linuxvideo', 1, 'RGB3_1280x1024'); % I'm just guessing what the largest format will be
>> preview(vid)
Let me know how that goes.
Offline
Hi Dave,
thanks for your reply:)
What I did not mention the last time:
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so /usr/local/MATLAB/R2011a/bin/matlab
This I do to start matlab, as this would be the output without preloading the module:
>> imaqhwinfo
ans =
InstalledAdaptors: {'dcam' 'linuxvideo'}
MATLABVersion: '7.12 (R2011a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.1 (R2011a)'
>> imaqhwinfo('dcam')
ans =
AdaptorDllName: '/usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwdcamimaq.so'
AdaptorDllVersion: '4.1 (R2011a)'
AdaptorName: 'dcam'
DeviceIDs: {1x0 cell}
DeviceInfo: [1x0 struct]
>> imaqhwinfo('linuxvideo')
ans =
AdaptorDllName: '/usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so'
AdaptorDllVersion: '4.1 (R2011a)'
AdaptorName: 'linuxvideo'
DeviceIDs: {1x0 cell}
DeviceInfo: [1x0 struct]
>>
I do have one webcam connected only, not two. Anyway imaqtool shows me two cams with exactly the same resolutions:
>> info = imaqhwinfo('linuxvideo', 1);
>> info.SupportedFormats'
ans =
'BGR3_1024x768'
'BGR3_1280x1024'
'BGR3_320x240'
'BGR3_640x480'
'BGR3_800x600'
'RGB3_1024x768'
'RGB3_1280x1024'
'RGB3_320x240'
'RGB3_640x480'
'RGB3_800x600'
'YU12_1024x768'
'YU12_1280x1024'
'YU12_320x240'
'YU12_640x480'
'YU12_800x600'
'YV12_1024x768'
'YV12_1280x1024'
'YV12_320x240'
'YV12_640x480'
'YV12_800x600'
>>
>> info = imaqhwinfo('linuxvideo', 2);
>> info.SupportedFormats'
ans =
'BGR3_1024x768'
'BGR3_1280x1024'
'BGR3_320x240'
'BGR3_640x480'
'BGR3_800x600'
'RGB3_1024x768'
'RGB3_1280x1024'
'RGB3_320x240'
'RGB3_640x480'
'RGB3_800x600'
'YU12_1024x768'
'YU12_1280x1024'
'YU12_320x240'
'YU12_640x480'
'YU12_800x600'
'YV12_1024x768'
'YV12_1280x1024'
'YV12_320x240'
'YV12_640x480'
'YV12_800x600'
>>
>> vid = videoinput('linuxvideo', 1, 'RGB3_1280x1024');
>> preview(vid)
Warning: Unable to reset the crop area. Perhaps the device is in use.
??? Error using ==> imaqdevice.preview at 181
Could not connect to the image acquisition device. Device may be in use.
>> vid = videoinput('linuxvideo', 1, 'RGB3_640x480');
>> preview(vid)
Warning: Unable to reset the crop area. Perhaps the device is in use.
??? Error using ==> imaqdevice.preview at 181
Could not connect to the image acquisition device. Device may be in use.
>>
For the dcam even preloading the module still does not work:
>> imaqhwinfo('dcam')
ans =
AdaptorDllName: '/usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwdcamimaq.so'
AdaptorDllVersion: '4.1 (R2011a)'
AdaptorName: 'dcam'
DeviceIDs: {1x0 cell}
DeviceInfo: [1x0 struct]
>>
I have documented my installation process, is there anything wrong (see link in first post)??
Do you use matlab with linux? I have learned VIDEOINPUT is a new feature for UNIX systems...
Offline
OK, what a shame... Once you know what to look for you find it immediately...
I just got a friends webcam and everything was just fine. My camera is not supported by the UVC driver, and so does not support Video 4 Linux 2 natively (?!?!?).
I have to buy a new camera:-p
http://www.mathworks.com/products/imaq/ … Linux.html
Thanks for helping:)!!!
---------------
My friends camera
#dmesg | tail
[12112.609033] usb 1-1: new high speed USB device using ehci_hcd and address 4
[12113.452499] uvcvideo: Found UVC 1.00 device USB Video Camera (0471:20ba)
[12113.454846] input: USB Video Camera as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/input/input10
[12113.455055] usbcore: registered new interface driver uvcvideo
[12113.455059] USB Video Class driver (v1.0.0)
>> imaqhwinfo('linuxvideo')
ans =
AdaptorDllName: '/usr/local/MATLAB/R2011a/toolbox/imaq/imaqadaptors/glnx86/mwlinuxvideoimaq.so'
AdaptorDllVersion: '4.1 (R2011a)'
AdaptorName: 'linuxvideo'
DeviceIDs: {[1] [2]}
DeviceInfo: [1x2 struct]
>> info = imaqhwinfo('linuxvideo', 1);
>> info.SupportedFormats'
ans =
'YUYV_320x240'
'YUYV_640x480'
>> vid = videoinput('linuxvideo',1,'YUYV_640x480')
Summary of Video Input Object Using 'USB Video Camera'.
Acquisition Source(s): Camera 1 is available.
Acquisition Parameters: 'Camera 1' is the current selected source.
10 frames per trigger using the selected source.
'YUYV_640x480' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.
Trigger Parameters: 1 'immediate' trigger(s) on START.
Status: Waiting for START.
0 frames acquired since starting.
0 frames available for GETDATA.
>> preview(vid)
>>
-------------------
My camera
#dmesg | tail
[12527.958808] usb 1-1: new high speed USB device using ehci_hcd and address 5
[12528.085053] gspca: probing 06f8:3003
[12528.202812] ov534_9: Sensor ID: 9657
[12528.371377] gspca: video0 created
[12528.373072] 5:2:1: cannot get freq at ep 0x84
[12528.502436] 5:2:1: cannot get freq at ep 0x84
[12528.506923] 5:2:1: cannot get freq at ep 0x84
>> vid = videoinput('linuxvideo',1,'RGB3_640x480')
Summary of Video Input Object Using 'Hercules Dualpix HD Microphone'.
Acquisition Source(s): ov534_9 is available.
Acquisition Parameters: 'ov534_9' is the current selected source.
10 frames per trigger using the selected source.
'RGB3_640x480' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.
Trigger Parameters: 1 'immediate' trigger(s) on START.
Status: Waiting for START.
0 frames acquired since starting.
0 frames available for GETDATA.
>> preview(vid)
Warning: Unable to reset the crop area. Perhaps the device is in use.
??? Error using ==> imaqdevice.preview at 181
Could not connect to the image acquisition device. Device may be in use.
>>
Offline
I'm glad that you found the root of your problem. It looks like I need to improve the detection of Video 4 Linux devices and handle them better, i.e. either support them fully or give a useful error message.
In the future, you'll probably get quicker answers to your MATLAB questions by posting either on MATLAB Answers or the MATLAB Newsgroup.
-Dave
Offline
Hi Dave,
thanks for your advice.
And I just saw that you have joined this forum just yesterday to answer my question - wow thanks a lot...:)
Cheers
Harm
Last edited by der_harm (2011-05-03 16:38:02)
Offline
Please mark the thread as [solved] (edit your first post).
Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.
Offline