ActiveX, Camera uEye

6 次查看(过去 30 天)
Jirka Kolben
Jirka Kolben 2011-9-2
评论: Myrtle42 2018-6-13
Hello, i have uEye cam and i need control the camera by ActiveX interface in matlab.
code:
actxcontrollist
h=actxcontrol('UEYECAM.uEyeCamCtrl.1','position',[20 20 640 512]);
methods(h)
d=h.InitCamera(1)
But matlab show error dialog: ERROR while calling error function. Propably not initialized.
Please help me. Thanks
  1 个评论
Adam Wyatt
Adam Wyatt 2015-6-4
I've created a file exchange submission which should significantly aid you all: File ID: #51099

请先登录,再进行评论。

采纳的回答

Adam Wyatt
Adam Wyatt 2014-12-9
ActiveX uses the COM interface, which is now no longer supported by IDS (uEye cameras). It is now recommended to use the .NET interface, which is fairly similar to the end user). Here is an example:
Using the .NET assembly is not quite as straightforward as with C# because Matlab does not directly support pointers, but there is a workaround as pointed out below.
Remember to "EXIT" your camera before trying to re-initialise the same camera
% Add NET assembly if it does not exist
% May need to change specific location of library
asm = System.AppDomain.CurrentDomain.GetAssemblies;
if ~any(arrayfun(@(n) strncmpi(char(asm.Get(n-1).FullName), ...
'uEyeDotNet', length('uEyeDotNet')), 1:asm.Length))
NET.addAssembly(...
'C:\Program Files\IDS\uEye\Develop\DotNet\signed\uEyeDotNet.dll');
end
% Create camera object handle
cam = uEye.Camera;
% Open 1st available camera
% Returns if unsuccessful
if ~strcmp(char(cam.Init), 'SUCCESS')
error('Could not initialize camera');
end
% Set display mode to bitmap (DiB)
if ~strcmp(char(cam.Display.Mode.Set(uEye.Defines.DisplayMode.DiB)), ...
'SUCCESS')
error('Could not set display mode');
end
% Set colormode to 8-bit RAW
if ~strcmp(char(cam.PixelFormat.Set(uEye.Defines.ColorMode.SensorRaw8)), ...
'SUCCESS')
error('Could not set pixel format');
end
% Set trigger mode to software (single image acquisition)
if ~strcmp(char(cam.Trigger.Set(uEye.Defines.TriggerMode.Software)), 'SUCCESS')
error('Could not set trigger format');
end
% Allocate image memory
[ErrChk, img.ID] = cam.Memory.Allocate(true);
if ~strcmp(char(ErrChk), 'SUCCESS')
error('Could not allocate memory');
end
% Obtain image information
[ErrChk, img.Width, img.Height, img.Bits, img.Pitch] ...
= cam.Memory.Inquire(img.ID);
if ~strcmp(char(ErrChk), 'SUCCESS')
error('Could not get image information');
end
% Acquire image
if ~strcmp(char(cam.Acquisition.Freeze(true)), 'SUCCESS')
error('Could not acquire image');
end
% Extract image
[ErrChk, tmp] = cam.Memory.CopyToArray(img.ID);
if ~strcmp(char(ErrChk), 'SUCCESS')
error('Could not obtain image data');
end
% Reshape image
img.Data = reshape(uint8(tmp), [img.Width, img.Height, img.Bits/8]);
% Draw image
himg = imshow(img.Data, 'Border', 'tight');
% Acquire & draw 100 times
for n=1:100
% Acquire image
if ~strcmp(char(cam.Acquisition.Freeze(true)), 'SUCCESS')
error('Could not acquire image');
end
% Extract image
[ErrChk, tmp] = cam.Memory.CopyToArray(img.ID);
if ~strcmp(char(ErrChk), 'SUCCESS')
error('Could not obtain image data');
end
% Reshape image
img.Data = reshape(uint8(tmp), [img.Width, img.Height, img.Bits/8]);
% Draw image
set(himg, 'CData', img.Data);
drawnow;
end
% Close camera
if ~strcmp(char(cam.Exit), 'SUCCESS')
error('Could not close camera');
end
  2 个评论
Yarden Allon
Yarden Allon 2015-7-26
Hi Adam, Do you know how to get a live video feed using the .NET interface?
Myrtle42
Myrtle42 2018-6-13
Hi Adam and Yarden -- I have the same question, wondering if anyone found a solution. I'd like to record video from an IDS uEye camera using the .NET interface in freerun mode to get the max framerate. Can anyone provide an example of 1) Configuring the camera in freerun mode and 2) Saving the resulting video as either .avi or mp4?

请先登录,再进行评论。

更多回答(1 个)

Wolfgang
Wolfgang 2014-8-4
Hi Jirka, did you manage to control the camera? I'm having similar problems at the moment... Thank you for your help!

类别

Help CenterFile Exchange 中查找有关 MATLAB Support Package for USB Webcams 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by