![]() |
NI Vision Functions
I think this is best answered by one of the NI guys/gals, but anyone is more than welcome to step in (especially if you know what to do :P).
I was looking through the NIVision.java file, and saw many, many functions for lots of functionality. They look like C++ functions. Some of them are, from what I can tell, implemented in Java as blocking functions. However, the vast majority of them are not. I would like to call some of these functions. Before I start digging into implementing them myself, is there a reason they are not implemented? My plan is to make my own task executer, and implement my own blocking function in the same style as the ones already implemented. They seem to follow a simple pattern of name and parameters to get from C++ to Java. Does anyone have experience doing this? Thanks a bunch! |
Re: NI Vision Functions
Those NI Vision functions are implemented by calling the NI C library. That way you get maximum performance on image transformations. Just be careful, it is allocating C memory for the various image classes and they have to be explicitly deallocated. Look at the documentation or sample programs to see how to do that.
Brad |
Re: NI Vision Functions
Quote:
|
Re: NI Vision Functions
Quote:
|
Re: NI Vision Functions
Alright, I got my first one working! I did the convex hull, since that will be useful to have, and didn't require any new structures.
Code:
private static final BlockingFunction imaqConvexHullFn = NativeLibrary.getDefaultInstance().getBlockingFunction("imaqConvexHull"); |
Re: NI Vision Functions
Quote:
|
Re: NI Vision Functions
Quote:
|
Re: NI Vision Functions
If you want to modify the WPILib source code, it can go in the NIVision.java. However, each time the plugins get updated, I believe your changed will get removed. I just put it in my robot class, but for the final code it will go in its own class. To answer your question, it can go anywhere.
|
Re: NI Vision Functions
We try adding it to our own class and tried extending it. We are getting the following error. cannot find symbol variable imaqConvexHullFn
We imported import com.sun.cldc.jna.*; is there anything else we need to import or do we need to extend the class or something. |
Re: NI Vision Functions
Quote:
|
Re: NI Vision Functions
We've been starting to work on camera-tracking code, and we ran into some issues. We thought that it might be a good idea to try the code that was posted here first, and make sure we could get that much to work. This is what we have so far:
Code:
public class Camera2012 {taskExecutor: cannot find symbol assertCleanStatus: cannot find symbol My own experience with Java is limited; could you help us out with this? If you happen to notice anything that might be helpful, we'll take all suggestions. Thanks so much! |
Re: NI Vision Functions
Essentially, this means you never created the taskExecutor object. The simplest way (I think) to use that code is to copy NIVision.java to your project, and add Dan's code into that.
|
Re: NI Vision Functions
Quote:
Is there any documentation for the imaq functions C-side? Specifically, I would like to use imaqDetectRectangles and need the fields of the RectangleMatch struct. |
Re: NI Vision Functions
Quote:
-Joe |
Re: NI Vision Functions
Quote:
|
| All times are GMT -5. The time now is 13:04. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi