Hi, I'm working on PDL bindings (Inline:::Pdlpp) to the OpenCV (v4.5) tracking class. I have created a wrapper (see header below).
I would now need to persistently store pointers to MatWrapper and TrackerWrapper - which are containers (structs) of the Mat and Tracker objects. At the moment, I have them declared in the auto_include code (struct TrackerWrapper * tw;). This would then prevent me from using multiple trackers. I therefore am looking of passing the pointer back and forth. I tried using OtherPars => 'TrackerWrapper * tw, MatWrapper * mw', .. this and a typemap file, it is referenced in the TYPEMAPS field. However, this results in unknown c type error TrackerWrapper when parsing the pd file. I think it is never used, following what is said here https://arxiv.org/pdf/1702.07753.pdf. Which subset of c-types are allowed? Is the approach reasonable and I am doing something wrong? What is the way to make a c struct persistent and accessible with perl/pp? There's Inline-C-Struct, does that work with pdl and if so, how? Any help is appreciated. I can share the full code (so far) upon request but it is work in progress. Ingo typemap: TYPEMAP TrackerWrapper T_PTR MatWrapper T_PTR tracker_wrapper.h: #ifdef __cplusplus extern "C" { #endif // struct cvType { int u8c3 ; int u8c1 ; int f32c3 ; int f32c1 ; } cvT; int tw_init(); //struct cvType cvT; typedef struct TrackerWrapper TrackerWrapper; struct TrackerWrapper * newTracker (int tracker_type); int deleteTracker (struct TrackerWrapper *); struct bBox{ int x; int y; int width; int height; }; typedef struct MatWrapper MatWrapper; struct MatWrapper * newMat (const int width, const int height, const int type, void * data); void * getData (struct MatWrapper * Mat); int setData (struct MatWrapper * Mat, const int type, void * data); int init_tracker(struct TrackerWrapper * Tr, struct MatWrapper * frame, const struct bBox * box ); int update_tracker(struct TrackerWrapper *, struct MatWrapper *, struct bBox * box); int show_tracker (struct MatWrapper * frame, struct bBox * roi) ; #ifdef __cplusplus } #endif
_______________________________________________ pdl-devel mailing list pdl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pdl-devel