Frequently Asked Questions (FAQs)
Question: There are plenty of frame grabbers on the market. Why should I consider buying this one?
This is a standalone USB device. You do not need to open a computer case to install a card. You can install the PixelPusher® software on any number of machines, and simply plug in the hardware to the machine you want to use at a particular time.
The sample client applications distributed with the product get you up and running fast. Each application has substantial functionality already built in, so you may be able to use an application "as is" without any additional programming. If you are a programmer, you can choose to extend these samples (or write your own from scratch) in MFC or any of the newer .NET languages.
Many image processing engineers have their own algorithms and code. The PixelPusher® software allows you to easily integrate your own algorithms for test and development. When you're ready to deploy the application, you only have to distribute the executables. No additional licenses are required.
Included in the SDK is a Win32 DLL called PixPushCv.dll that provides an interface to the freely available OpenCV image understanding library. You can readily add your own functions that call OpenCV APIs to this DLL, and create your own image processing pipeline. This saves you considerable development time since you now have access to over 500 image processing functions that are optimized for the Intel platform.
Question: Do I need to purchase the optional video breakout cable
If you plan to only use the RCA and S-Video jacks on the PixelPusher® device, you do not need the breakout cable. However, if you plan to connect one or more cameras having BNC connectors, you will probably want to purchase the breakout cable. You can, of course, purchase an adapter from Radio Shack or other popular consumer electronics stores to convert a BNC connector to the RCA jack, but this limits you to attaching a single BNC device to PixelPusher®.
Question: Can I use PixelPusher® with LabVIEW®
The PixelPusher® application programming interface (API) is implemented as a regular Windows DLL. LabVIEW® provides a tool that enables you to import functions exported by any regular Windows DLL. You can do this import yourself, but it requires considerable effort to get it right. To facilitate this, we provide, at no charge, a Beta release of a LabVIEW® Support Package, which is available on request (and with the purchase of PixelPusher®). This package provides a complete set of Virtual Instruments (VIs) that allows you to access all hardware features.
Question: If I want to extend the sample applications provided in the SDK, what language do I need to code in?
You do not need to write any code to use PixelPusher® right out of the box. However, if you want to include your own image processing functions, or extend the user interface, you can use any of the .NET languages, e.g., Visual C#, Visual Basic, Visual C++, Visual J++, or Microsoft Foundation Classes (MFC) . The SDK includes complete sample applications written in .NET C#, .NET Visual Basic and MFC, which you can easily extend to incorporate the features you want in the user interface. You can also use these applications as is and easily embed your own image processing functions as methods (or member functions) in the CImgPro class that is provided in each language. The PixelPusher® dyanmic link library (DLL) is written as a regular Win32 DLL, which means that virtually any 32-bit Windows program can link to it, including console applications or third party software that provides an interface to32-bit Windows DLLs.
Question: Does the SDK include an image processing library, i.e., a set of image processing functions that I can apply to my problem?
The SDK does not provide a comprehensive image processing library. However, programming support is provided in the SDK through the CImgPro class that allows a developer to access the freely available open source OpenCV image understanding library for application development. This support makes it easy to call one or more of the 500+ OpenCV functions so that the programmer has a rich image processing development environment at his disposal. Alternatively, the programmer can insert his own image processing functions into the image processing pipeline that is implemented in the CImgPro class; these might be functions developed under a previous project, or functions that he/she wants to create from scratch.
Question: I want to build a simple video surveillance system where I can monitor a few video sources and optionally record them. Will this device work?
You can connect up to six (6) composite video sources (or 4 composite and 1 S-Video source) to the PixelPusher® hardware. From the PC user interface, you can switch between cameras. You can also view (implemented in the MFC sample application only) up to four (4) cameras at quarter screen resolution and the software will automatically switch between them at a user specified interval. Beginning with Release 1.2 of the SDK, you can now record live video to a hard disk. You can record both the source video and the image processing operations you have applied to the source video; this is a great way to develop and test your image processing functions
Question: How can I use this system to develop and test image processing operations?
PixelPusher® enables you to easily build an image processing pipeline, involving any number of steps or "stages." You can view the result of any stage to see if an operation (embodied in your own image processing function) is performing as expected. You can display up to four (4) stages simultaneously at quarter screen resolution. In addition, with the brightness and contrast controls, you can immediately see how robust your pipeline is to changes in illumination. Basically, you write the image processing functions in any .NET language or MFC, and then call these functions in the order you want.
Question: Can I use this device in a motion detection application?
Yes, but you need to supply the motion detection algorithms (written in any .NET language or MFC) that you will embed in the Visual Studio 2005/2008 projects that are provided in the SDK (software development kit).
Question: Can I save out individual frames of the source video?
Yes, PixelPusher® has an easy to use "snapshot" feature that allows the user to easily take and view snapshots of the source video stream as well as the image processing reults..
Question: Can I write live video to a disk file?
Yes, you can save out both the original source video and the results of any image processing operations that have been applied to the source video.
Question: I'm a value added reseller with an application in mind that uses image processing. What is in the SDK that will get me off to a quick start?
There are three (3) Visual Studio 2005/2008 solutions provided in the SDK, and each one provides a complete user interface to access all the features of the hardware device. These solutions are written in the .NET languages of C# and Visual Basic .NET, and there is a version written in Microsoft Foundation Classes (MFC). These sample solutions therefore provide an environment that virtually any programmer can be productive in. The three solutions are functionally identical (except that only the MFC version provides toolbars).
Question: Why does making a change in resolution or color mode require a restart?
The design of PixelPusher® is such that when it is started and the video frame data structures are created, they are sized to work for a single resolution and bits per pixel (e.g., 640*480=307,200 pixels at 8 bits per pixel). When the resolution or color mode changes, these data structures need to be re-created and the easiest way is to restart the application. The restart is automatic and takes only 3-5 seconds, and in general, users will not often switch resolutions or color mode, so most applications will not be affected by this requirement