View Single Post
  #3   Spotlight this post!  
Unread 15-03-2014, 13:08
Arhowk's Avatar
Arhowk Arhowk is offline
FiM CSA
AKA: Jake Niman
FRC #1684 (The Chimeras) (5460 Mentor)
 
Join Date: Jan 2013
Rookie Year: 2013
Location: Lapeer
Posts: 542
Arhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to behold
Re: Vision Targeting: Dilate

Anyone? We need it to detect hot goals

E/ i found this in NIVision.java

Code:
    //============================================================================
    //  Morphology functions
    //============================================================================
    //IMAQ_FUNC int IMAQ_STDCALL imaqGrayMorphology(Image* dest, Image* source, MorphologyMethod method, const StructuringElement* structuringElement);
E/ can anyone post the list of constants for MorphologyMethod and StructuringElement? if I'm rewrapping the entire NIVision library might as well throw in erode as well


I'm going to see if i can rewrap this

E/ my copy of windriver has no license -_-

E/ found them here http://zone.ni.com/reference/en-XX/h...raymorphology/

E/ for open sourcing purposes, here is NIVision.dilate(). If anyone knows how to remove the while loop and convert the 0 into a [count][count], LMK. If you want to use this, you have to rebuild the wpi libraries and add this in image/NIVision.java

Code:
    private static final int FN_DILATE = 2;
    
    private static final BlockingFunction imaqGrayMorphologyFn = NativeLibrary.getDefaultInstance().getBlockingFunction("imaqGrayMorphology");
    static { imaqGrayMorphologyFn.setTaskExecutor(taskExecutor); }
    
    public static void dilate(Pointer dest, Pointer source, int count) throws NIVisionException {
        assertCleanStatus(imaqGrayMorphologyFn.call4(dest.address().toUWord().toPrimitive(),
                                                source.address().toUWord().toPrimitive(),
                                                FN_DILATE,
                                                0));
        if(--count > 0){
            while(count --> 0){
                assertCleanStatus(imaqGrayMorphologyFn.call4(dest.address().toUWord().toPrimitive(),
                                                        dest.address().toUWord().toPrimitive(),
                                                        FN_DILATE,
                                                        0));
            }
        }
    }

Last edited by Arhowk : 15-03-2014 at 19:44.
Reply With Quote