|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: MemPartAlloc Error When Trying to Access the NIVision Library
I am currently experiencing the same issues with the NIvision library. It'd be fantastic if someone had any advice. If not, I'm planning on finding out exactly where this error occurs in my code on friday. If I learn anything useful, I'll post my findings.
|
|
#2
|
|||
|
|||
|
Re: MemPartAlloc Error When Trying to Access the NIVision Library
Use the Charts tab on the Driver Station to see how much total memory you have free and the size of the largest block.
|
|
#3
|
||||
|
||||
|
Re: MemPartAlloc Error When Trying to Access the NIVision Library
I found a memory leak in NIVision.particleFilter(). I believe WPI is working on it...
If you feel daring, you could modify WPILibJ's NIVision class (sunspotfrcsdk/lib/WPILibJ/src/edu/wpi/first/wpilibj/image/NIVision.java) with this UNTESTED FIX: Code:
/* THIS IS AN UNTESTED FIX */
public static int particleFilter(Pointer dest, Pointer source, CriteriaCollection collection) throws NIVisionException {
Pointer particleFilterOptions = new Pointer(16);
particleFilterOptions.setInt(0, 0);
particleFilterOptions.setInt(4, 0);
particleFilterOptions.setInt(8, 0);
particleFilterOptions.setInt(12, 1);
IntByReference i = new IntByReference(0);
Pointer criteriaArray = collection.getCriteriaArray();
assertCleanStatus(imaqParticleFilter4Fn.call7(dest.address().toUWord().toPrimitive(), // dest image
source.address().toUWord().toPrimitive(), // source image
criteriaArray.address().toUWord().toPrimitive(), // array of criteria
collection.getNumberOfCriteria(), // number of criteria in the array
particleFilterOptions.address().toUWord().toPrimitive(), // particle filter options
0, // Region of interest
i.getPointer().address().toUWord().toPrimitive())); // returned number of particles
int numberOfParticles = i.getValue();
i.free();
criteriaArray.free();
particleFilterOptions.free();
return numberOfParticles;
}
|
|
#4
|
|||||
|
|||||
|
Re: MemPartAlloc Error When Trying to Access the NIVision Library
You have to make sure to release any images that you create, since they are being ported from C they do not get automatically garbage collected. Use the .free() method on any images.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|