What state is ofxSpinnaker in?


#1

@elliotwoods
Hi Elliot.
It interesting to see that you started working on a spinnaker implementation.
Is it working?
Do you think it would work for this camera since it is listed to use Spinnaker SKD?

What’s your general experience in OF with it; speed, frame size, fps, etc?

thanks,
stephan.


#2

It’s likely to work.
I used ofxSpinnaker for a stereo tracking system
2 cameras, each 1280x800 @ 60Hz on one system (synced)

It ran very stable

Note this is built on top of ofxMachineVision, so you’ll need to get familiar with that. That handles all the threading, frame pooling, parameters, etc etc

The only thing is that I probably built ofxSpinnaker as a DLL plugin for to use with the ofxMachineVision external plugin framework. You don’t need to do that (if can be a bit crazy using the plugin approach).


#3

Thanks for the fast reply.
I hope to get my hands on the camera tomorrow and will give it a try.

I mainly use OS X so I am not sure if visual studio gives me the option to build for DLL or not.
I will just hit compile and see what happens :slight_smile:


#4

for which OF version are ofxMachineVision and ofSpinnaker build?
trying it with 0.9.8 and get a whole bunch of build error.
I also see files are still named testApp.h which must mean it’s 0.8.x?

I’m trying to simply build the simpleCamera example in ofxMachineVision.
but it needs ofxUVC, which needs ofxYML, also ofPlugin, ofxSingelton and ofxLiquidEvent.
i.e. not compiling for now.

would you happen to have an example for ofxSpinnaker, one that is not a ofxSpinnakerLib, but with a nice main.cpp, ofApp.cpp and ofApp.h file ?

sorry for all these questions.
but the promise of using those nice cameras is just too tempting.


#5

You can rip out ofxUVC from the equation
But you’ll need liquidevent, plugin, Singleton


#6

I’m not using 10.0, i’m still on late 0.9.8 or something like that
i just haven’t renamed any testApp’s in the time being.

example would be like:

#include "ofxSpinnaker.h"
class ofApp {
...
ofxMachineVision::SimpleGrabber<ofxMachineVision::Device::Spinnaker> camera;

}
setup() {
    camera.open();
    camera.startCapture();
}

update() {
    camera.update();
}

draw() {
    camera.draw(0, 0);
}

the concept of ofxMachineVision is that it completely abstracts away the idiosyncrasies of the camera driver from your application. It works with Canon EDSDK, Ximea, IDS UEye, Point Grey/FLIR Spinnaker, VideoInput, UVC Capture, BlackMagic, Still Images, Video Files, Null Device, Kinect RGB camera, and a couple more I can’t remember right now

so for each camera driver you just right a very thin class which describes the camera to ofxMachineVision, then ofxMachineVision does all the boilerplate code for you. This is supposed to mean you’re getting the best implementation of a threading camera class or whatever, and at the same time all that boilerplate (including the examples) are all in one code base.

Using the Factory model (and plugins if you like), it’s then also possible to list all devices of all types attached to the system, and switch between them.


#7

Hi guys!

I’ve tried to compile it (with VS2015 & OF0.9.8) but some issues there :confused:
I’ve posted my errors and steps here -> issues ofxMachineVision Github.