[PD] new wiki page for pd-opencv
ola, we change the wiki to : http://giss.tv/wiki/index.php/Opencv_for_PD source code is still in SVN. update your bookmarks, saludos, sevy ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
I am able to install the package. Whilst pdp_opencv works fine, pix_opencv doesn't and I get the following error. /usr/lib/pd-extended/extra/pix_opencv_athreshold.pd_linux: /usr/lib/pd-extended/extra/pix_opencv_athreshold.pd_linux: undefined symbol: _ZNK12GemException6reportEv pix_opencv_athreshold ... couldn't create Hmmm... Philip On Thu, Oct 28, 2010 at 11:52 PM, Philip Cunningham pcunningham...@googlemail.com wrote: I guess my problem is getting opencv libraries installed. I can't install libhighgui-dev in Ubuntu 10.4 and it appears to be a more general problem for Ubuntu users. Whilst this might be a more OS-specific question, I wondered if anyone using Pd and Ubuntu was able to to do this and how. Philip -Original Message- From: ydegoyon at gmail.com [mailto:ydegoyon at gmail.com] Sent: Thursday, October 28, 2010 2:33 PM To: Pagano, Patrick; PD List Subject: Re: [PD] opencv there are already some work made with pd_opencv http://vimeo.com/8195788 i dunno what more explanations you need, just be curious and inventive ciao, sevy Pagano, Patrick wrote: So far I have not seen anything besides help patches that explain it's use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? *From:* pd-list-bounces at iem.at [mailto:pd-list-bounces at iem.at] *On Behalf Of *Jose Luis Santorcuato *Sent:* Thursday, October 28, 2010 1:09 PM *To:* Claude Heiland-Allen *Cc:* pd-list at iem.at *Subject:* Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaximus at goto10.org mailto:claudiusmaximus at goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppa https://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list at iem.at mailto:Pd-list at iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list at iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Tumblr: http://philipcunningham.tumblr.com Portfolio: http://philipcunningham.org/ Email: pcunningham...@googlemail.com -- Tumblr: http://philipcunningham.tumblr.com Portfolio: http://philipcunningham.org/ Email: pcunningham...@googlemail.com ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
On Fri, Oct 29, 2010 at 1:12 PM, Philip Cunningham pcunningham.uk@ googlemail.com wrote: I am able to install the package. Whilst pdp_opencv works fine, pix_opencv doesn't and I get the following error. /usr/lib/pd-extended/extra/pix_opencv_athreshold.pd_linux: /usr/lib/pd-extended/extra/pix_opencv_athreshold.pd_linux: undefined symbol: _ZNK12GemException6reportEv pix_opencv_athreshold ... couldn't create Hi Philip, if I'm not wrong this error means that the gem version you are using is different from the version of gem used to compile your package. so, try to use another version of gem (for example from an older version of pd-extended) cheers husk Hmmm... Philip On Thu, Oct 28, 2010 at 11:52 PM, Philip Cunningham pcunningham...@googlemail.com wrote: I guess my problem is getting opencv libraries installed. I can't install libhighgui-dev in Ubuntu 10.4 and it appears to be a more general problem for Ubuntu users. Whilst this might be a more OS-specific question, I wondered if anyone using Pd and Ubuntu was able to to do this and how. Philip -Original Message- From: ydegoyon at gmail.com [mailto:ydegoyon at gmail.com] Sent: Thursday, October 28, 2010 2:33 PM To: Pagano, Patrick; PD List Subject: Re: [PD] opencv there are already some work made with pd_opencv http://vimeo.com/8195788 i dunno what more explanations you need, just be curious and inventive ciao, sevy Pagano, Patrick wrote: So far I have not seen anything besides help patches that explain it's use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? *From:* pd-list-bounces at iem.at [mailto:pd-list-bounces at iem.at] *On Behalf Of *Jose Luis Santorcuato *Sent:* Thursday, October 28, 2010 1:09 PM *To:* Claude Heiland-Allen *Cc:* pd-list at iem.at *Subject:* Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaximus at goto10.org mailto:claudiusmaximus at goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppa https://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list at iem.at mailto:Pd-list at iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list at iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Tumblr: http://philipcunningham.tumblr.com Portfolio: http://philipcunningham.org/ Email: pcunningham...@googlemail.com -- Tumblr: http://philipcunningham.tumblr.com Portfolio: http://philipcunningham.org/ Email: pcunningham...@googlemail.com ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- when Art become pratical we call it technology. When Technology become useless we call it Art www.estereotips.net ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
ola, the package that is on the official page is for Pd-extended 0.41-4 ( as it is written on this page ), this doesn't matter for pdp_opencv, but it matters for pix_opencv ( it is for gem 0.91 ). use pdp_opencv and pdp2gem is you really need gem, but for analysis you might no need it at all ciao, sevy Philip Cunningham wrote: I am able to install the package. Whilst pdp_opencv works fine, pix_opencv doesn't and I get the following error. /usr/lib/pd-extended/extra/pix_opencv_athreshold.pd_linux: /usr/lib/pd-extended/extra/pix_opencv_athreshold.pd_linux: undefined symbol: _ZNK12GemException6reportEv pix_opencv_athreshold ... couldn't create Hmmm... Philip ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] opencv
Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. Best, Philip -- Tumblr: http://philipcunningham.tumblr.com Email: pcunningham...@googlemail.com ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppa Claude ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaxi...@goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppahttps://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
So far I have not seen anything besides help patches that explain it's use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? From: pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] On Behalf Of Jose Luis Santorcuato Sent: Thursday, October 28, 2010 1:09 PM To: Claude Heiland-Allen Cc: pd-list@iem.at Subject: Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaxi...@goto10.orgmailto:claudiusmaxi...@goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppahttps://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list@iem.atmailto:Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
there are already some work made with pd_opencv http://vimeo.com/8195788 i dunno what more explanations you need, just be curious and inventive ciao, sevy Pagano, Patrick wrote: So far I have not seen anything besides help patches that explain it’s use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? *From:* pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] *On Behalf Of *Jose Luis Santorcuato *Sent:* Thursday, October 28, 2010 1:09 PM *To:* Claude Heiland-Allen *Cc:* pd-list@iem.at *Subject:* Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaxi...@goto10.org mailto:claudiusmaxi...@goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppa https://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list@iem.at mailto:Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
I would like to make a laser tracker that tracks the points from a red laser beam. I would like to see if I can use pdp_ openCV to track the laser and when I hover the laser over some video long enough it acts as a click, is this possible? Thanks for the cool link! -Original Message- From: ydego...@gmail.com [mailto:ydego...@gmail.com] Sent: Thursday, October 28, 2010 2:33 PM To: Pagano, Patrick; PD List Subject: Re: [PD] opencv there are already some work made with pd_opencv http://vimeo.com/8195788 i dunno what more explanations you need, just be curious and inventive ciao, sevy Pagano, Patrick wrote: So far I have not seen anything besides help patches that explain it's use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? *From:* pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] *On Behalf Of *Jose Luis Santorcuato *Sent:* Thursday, October 28, 2010 1:09 PM *To:* Claude Heiland-Allen *Cc:* pd-list@iem.at *Subject:* Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaxi...@goto10.org mailto:claudiusmaxi...@goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppa https://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list@iem.at mailto:Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
I guess my problem is getting opencv libraries installed. I can't install libhighgui-dev in Ubuntu 10.4 and it appears to be a more general problem for Ubuntu users. Whilst this might be a more OS-specific question, I wondered if anyone using Pd and Ubuntu was able to to do this and how. Philip -Original Message- From: ydegoyon at gmail.com [mailto:ydegoyon at gmail.com] Sent: Thursday, October 28, 2010 2:33 PM To: Pagano, Patrick; PD List Subject: Re: [PD] opencv there are already some work made with pd_opencv http://vimeo.com/8195788 i dunno what more explanations you need, just be curious and inventive ciao, sevy Pagano, Patrick wrote: So far I have not seen anything besides help patches that explain it's use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? *From:* pd-list-bounces at iem.at [mailto:pd-list-bounces at iem.at] *On Behalf Of *Jose Luis Santorcuato *Sent:* Thursday, October 28, 2010 1:09 PM *To:* Claude Heiland-Allen *Cc:* pd-list at iem.at *Subject:* Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaximus at goto10.org mailto:claudiusmaximus at goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppa https://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list at iem.at mailto:Pd-list at iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list at iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Tumblr: http://philipcunningham.tumblr.com Portfolio: http://philipcunningham.org/ Email: pcunningham...@googlemail.com ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
hi philip, i don't remember how i compiled it, but here's my vesion for ubuntu 10.4: http://dl.dropbox.com/u/1455235/pdopencv.tar.gz pat ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv
I compiled pdp_openCV not that long ago on ubuntu 10.4. I don't remember how I did it but I think that's because it was pretty straightforward and went without hitch. It all worked pretty well as I recall. No big surprises. The help patches got me started. But do you need that for a laser tracker? Seems like pix_subtract and pix_blob would do the job... Max Neupert has some nice patches using this technique IIRC: http://web.uni-weimar.de/medien/wiki/Bewegungsmelder You could also use pix_blob's color weight inlet effectively since you know you are looking for red. -John On Thu, Oct 28, 2010 at 2:22 PM, Pagano, Patrick p...@digitalworlds.ufl.eduwrote: I would like to make a laser tracker that tracks the points from a red laser beam. I would like to see if I can use pdp_ openCV to track the laser and when I hover the laser over some video long enough it acts as a click, is this possible? Thanks for the cool link! -Original Message- From: ydego...@gmail.com [mailto:ydego...@gmail.com] Sent: Thursday, October 28, 2010 2:33 PM To: Pagano, Patrick; PD List Subject: Re: [PD] opencv there are already some work made with pd_opencv http://vimeo.com/8195788 i dunno what more explanations you need, just be curious and inventive ciao, sevy Pagano, Patrick wrote: So far I have not seen anything besides help patches that explain it's use. Has anyone at all made a working patch, say a laser tracker? Anything using pix_ or pdp_ openCV stuff? *From:* pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] *On Behalf Of *Jose Luis Santorcuato *Sent:* Thursday, October 28, 2010 1:09 PM *To:* Claude Heiland-Allen *Cc:* pd-list@iem.at *Subject:* Re: [PD] opencv Hi, Search in torrents Learning Open CVOreilly media... the Pd OCV reserch is based in this book... Best regards José 2010/10/28 Claude Heiland-Allen claudiusmaxi...@goto10.org mailto:claudiusmaxi...@goto10.org On 28/10/10 17:39, Philip Cunningham wrote: Hello list, I wonder if there are any tutorials available on how to use OpenCV with Pd? I'm trying to download necessary components using the following site: http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but having very little luck. Operating system is Ubuntu 10.4. You could try the Puredyne PPA for pd-pdp-opencv (available right nownow) and pd-pix-opencv packages (available soon..) for Lucid: https://launchpad.net/~puredyne-team/+archive/ppahttps://launchpad.net/%7Epuredyne-team/+archive/ppa https://launchpad.net/%7Epuredyne-team/+archive/ppa Claude ___ Pd-list@iem.at mailto:Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- http://arselectronicachile.blogspot.com http://www.myspace.com/santorcuato http://comunicacionnativa.blogspot.com/ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] openCV face detection performance Was: make me
ola, i dunno, is the source of the sofware coming with your cam available? second, you don't need to convert to grayscale, it's already made internally saludos, sevy Max wrote: While I was checking out a Canon EOS 5D automatic face detection and focus, I wondered why this camera can do so effortless and the OpenCV on a Mac 8 core machine uses one Processor with 250% for that. When changing to greyscale colorspace and reducing the resolution to a quarter of PAL one get under 100% but it still still seems like a lot. Any Ideas why that could be? m. Am 19.08.2010 um 13:34 schrieb ydego...@gmail.com: ola, basically what is missing from opencv is an 6 DOF Head Tracking. do you have an idea on which algorithm it is based? i googled a bit but couldn't find really valuable information on this... saludos, sevy ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] openCV face detection performance Was: make me
While I was checking out a Canon EOS 5D automatic face detection and focus, I wondered why this camera can do so effortless and the OpenCV on a Mac 8 core machine uses one Processor with 250% for that. When changing to greyscale colorspace and reducing the resolution to a quarter of PAL one get under 100% but it still still seems like a lot. Any Ideas why that could be? m. Am 19.08.2010 um 13:34 schrieb ydego...@gmail.com: ola, basically what is missing from opencv is an 6 DOF Head Tracking. do you have an idea on which algorithm it is based? i googled a bit but couldn't find really valuable information on this... saludos, sevy ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] openCV face detection performance Was: make me
On Thu, 19 Aug 2010, Max wrote: While I was checking out a Canon EOS 5D automatic face detection and focus, I wondered why this camera can do so effortless and the OpenCV on a Mac 8 core machine uses one Processor with 250% for that. When changing to greyscale colorspace and reducing the resolution to a quarter of PAL one get under 100% but it still still seems like a lot. Any Ideas why that could be? There are several reasons, one of which being that specialised processors can still be much faster than general processors (just look at what video cards can do...) but it's also very possible that they downscale the image by a factor of 2*2 (4 times faster) or 4*4 (16 times faster) before starting to apply the face detection. Note also that converting from GEM's YUV to RGB upscales the U and V channel by a factor of 2 horizontally (no vertical scaling), which means that the RGB data is a bit redundant. That's the 422 mode. For cameras in YUV 420 mode, there's also vertical scaling, therefore, in my camera code, I have added an option to convert directly from YUV420 to a twice narrower, twice shorter RGB picture, for the case where the chroma resolution is absolutely essential. It reduces a lot of waste. _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] pd, openCV, pointers and indirection.
thanks Mathieu, it is still not clear for me what make things faster in one case or another but it helps. loic PS: what do you call Martin's strings ? On 3 oct. 09, at 23:22, Mathieu Bouchard wrote: On Sat, 3 Oct 2009, Loic Kessous wrote: I understand your point of view, but I am more interested buy the approach than the implementation itself. I mean passing a pointer and not the image itself. Passing the image itself is largely a myth anyway. At a first level, Pd doesn't always pass $1, $2, $3, etc., as separate arguments in C: it often passes the pointer to the list (under the name argv). This is what always happens for running list-methods and anything-methods, as well as when sending list- messages and anything-messages (pd automatically converts argv to non-argv and non-argv to argv whenever needed). At a second level, not much large data is passed as pd arglists: some notable exceptions can happen in [pix_data], [pix_set], [#to_list], [#import], [pix_convolve]'s config, Martin's strings, etc.; plugins such as Gem and GridFlow use a second level of pointers to avoid Pd's argv. This is mostly for this reason: because Pd's argv is limited to being a t_atom array, which is usually too big and inefficient for tightly-formatted data, spending 8 or 16 bytes on storing a 4-byte float when you just want to store a single- byte int, for example. But then, with either level, the way of specifying the pointer to the list allows basically anything to happen, as the pointer doesn't have to be stack allocated. With argv, methods aren't allowed to rely on a past argv after the return is done, but still, the sender of the message can decide the argv to be anything, not necessarily on the stack; this can happen to be fairly permanent data. Beyond that, there is a distinction between systems that let the user deal with the pointerness aspect, and those that try to hide it (to make it more automatic and easier to think about, they pretend to pass the image but doesn't really). Outside of Pd, both strategies are widely used. Perl and Tcl are very good examples of strings that never look like they use pointers but always do. In Pd, ... only GridFlow uses something that looks like pass the image semantics but has a few gotchas, and it's also the only one that can pass an image without allocating a buffer of the same size as the image. In the end, all the video frameworks make the user mess with pointers in some way: * Gem's [pix_separator] * PDP's [pdp_trigger] * GridFlow's [#t] * MaPoD even required the user to free() image buffers using a special object-class. * FrameStein: i don't know (sorry). That's why it's compiled as a dll library I suppose I don't see any link between any of the above notions, and the kind of linkage (dll, etc) it uses. and I wonder how using another solution as shared memory for example could be done in the same goal... loic No idea what you are referring to. I know what shared memory is, I know what indirection is, but I don't know what is the problem that the solution solves, you didn't say that. (And if anything, shared memory introduces new portability concerns.) _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801 ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] pd, openCV, pointers and indirection.
On Mon, 5 Oct 2009, Loic Kessous wrote: thanks Mathieu, it is still not clear for me what make things faster in one case or another but it helps. 1. data spacing: the more your data is spaced in memory, the more the cache has to load lots of data, because it assumes that the data is not very fragmented. Pd in 64-bit mode spends half of the argv space on padding. Here by spacing I mean the difference of starting position of two elements next to each other (e.g. where are $1 and $2 in RAM). 2. data element size: when the data doesn't have padding, this is the same as data spacing. Pd in in any mode spends half of the nonpadding argv space on type information. 3. type checking: if you have to check that every element of an argv is indeed a float, you need to use twice more data, and it's twice more spacing, but on top of that you need one conditional per element, just in case it isn't a float, and conditionals are getting comparatively slow on modern CPUs because they're harder to accelerate than the rest. 4. time fragmentation: a low block size may mean the CPU has to reload things in the cache more often, if the CPU's other tasks need the same cache for other purposes between the processing of two blocks. Bigger blocks mean that the CPU can concentrate. Having to repeatedly call, init, deinit, return, is also something that can take time. 5. cache fitting: repeatedly making long sweeps on very long arrays can make the cache completely useless. it's better to do as many things as possible on a small area of RAM at a time. Based on those five criteria, we could compare various storage and computation strategies of various internals and externals of pd, provided that we get a bit more precise on some things. There may also be additional criteria. loic PS: what do you call Martin's strings ? I thought I knew, but I borked that. Martin's strings are [mrpeach/str], but they don't use pd lists of floats, they use a custom atom type called BLOB, which is essentially a form of double-indirection. (POINTER is also a double-indirection, but it was meant for DS, though it's often hijacked to be used in other ways.) _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] pd, openCV, pointers and indirection.
On Mon, 5 Oct 2009, Mathieu Bouchard wrote: On Mon, 5 Oct 2009, Loic Kessous wrote: loic PS: what do you call Martin's strings ? I thought I knew, but I borked that. Martin's strings are [mrpeach/str], but they don't use pd lists of floats, they use a custom atom type called BLOB, And the weird thing is that actually I knew that very well, but I still wrote «Martin's strings» in the list without thinking, I don't know why. Sleep deprivation, drugs, distractions, name it, blame it. _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] pd, openCV, pointers and indirection.
On Sat, 3 Oct 2009, Loic Kessous wrote: I understand your point of view, but I am more interested buy the approach than the implementation itself. I mean passing a pointer and not the image itself. Passing the image itself is largely a myth anyway. At a first level, Pd doesn't always pass $1, $2, $3, etc., as separate arguments in C: it often passes the pointer to the list (under the name argv). This is what always happens for running list-methods and anything-methods, as well as when sending list-messages and anything-messages (pd automatically converts argv to non-argv and non-argv to argv whenever needed). At a second level, not much large data is passed as pd arglists: some notable exceptions can happen in [pix_data], [pix_set], [#to_list], [#import], [pix_convolve]'s config, Martin's strings, etc.; plugins such as Gem and GridFlow use a second level of pointers to avoid Pd's argv. This is mostly for this reason: because Pd's argv is limited to being a t_atom array, which is usually too big and inefficient for tightly-formatted data, spending 8 or 16 bytes on storing a 4-byte float when you just want to store a single-byte int, for example. But then, with either level, the way of specifying the pointer to the list allows basically anything to happen, as the pointer doesn't have to be stack allocated. With argv, methods aren't allowed to rely on a past argv after the return is done, but still, the sender of the message can decide the argv to be anything, not necessarily on the stack; this can happen to be fairly permanent data. Beyond that, there is a distinction between systems that let the user deal with the pointerness aspect, and those that try to hide it (to make it more automatic and easier to think about, they pretend to pass the image but doesn't really). Outside of Pd, both strategies are widely used. Perl and Tcl are very good examples of strings that never look like they use pointers but always do. In Pd, ... only GridFlow uses something that looks like pass the image semantics but has a few gotchas, and it's also the only one that can pass an image without allocating a buffer of the same size as the image. In the end, all the video frameworks make the user mess with pointers in some way: * Gem's [pix_separator] * PDP's [pdp_trigger] * GridFlow's [#t] * MaPoD even required the user to free() image buffers using a special object-class. * FrameStein: i don't know (sorry). That's why it's compiled as a dll library I suppose I don't see any link between any of the above notions, and the kind of linkage (dll, etc) it uses. and I wonder how using another solution as shared memory for example could be done in the same goal... loic No idea what you are referring to. I know what shared memory is, I know what indirection is, but I don't know what is the problem that the solution solves, you didn't say that. (And if anything, shared memory introduces new portability concerns.) _ _ __ ___ _ _ _ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Opencv pd
For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the IOhannes m zmoelnig wrote: otoh, why don't you just use the Gem framework? My thoughts *EXACTLY* Why spend time re-doing what exists? (for fun, perhaps ;) As it is, pix_blob works quite well - and if you need multiblob, update pd/gem from CVS - pix_multiblob works very well also, and is quite fast. *instancing* / id tracking is rare (not inherent to openCV either), but I was able to hack it well enough for my purposes. if nothing else works, it might be simplest to just write your own application (without pd) and send the data to pd via your favourite protocol (FUDI, OSC, SMTP...) Indeed - for more complicated operations (face body recognition) I used opencv's haars, then sent the coordinates to GEM via OSC for various visual effects. From pd context, I don't see what benefit opencv blobs have over pix_multi/blob; but perhaps I am missing something! ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Opencv pd
I dont know if you have ever used pix_multiblob before. This would be my first option and I already had built a huge project using pix_multiblob before I realized that just tracking 5 blobs with pix_multiblob on a G5 dual 2Ghz with a Radeon 9800 XT and 3 gig of ram it was using up 98-104 percent of my cpu on just tracking lone. Try the pix_multiblob example. The opencv app I built running on a powerbook g4 1.5Ghz with 512mb of ram only uses 38-45 of my cpu with the same movie. In my project I am going to need to track at least 15 to 20 blobs if not more. You do the math. The reason I want to build it into an external is for convenience and for the learning process. If you have any help to give I will be happy to learn from you. Alain From: nanodust [EMAIL PROTECTED] Date: 2007/05/30 Wed AM 08:07:45 EDT To: pd-list@iem.at Subject: Re: [PD] Opencv pd For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the IOhannes m zmoelnig wrote: otoh, why don't you just use the Gem framework? My thoughts *EXACTLY* Why spend time re-doing what exists? (for fun, perhaps ;) As it is, pix_blob works quite well - and if you need multiblob, update pd/gem from CVS - pix_multiblob works very well also, and is quite fast. *instancing* / id tracking is rare (not inherent to openCV either), but I was able to hack it well enough for my purposes. if nothing else works, it might be simplest to just write your own application (without pd) and send the data to pd via your favourite protocol (FUDI, OSC, SMTP...) Indeed - for more complicated operations (face body recognition) I used opencv's haars, then sent the coordinates to GEM via OSC for various visual effects. From pd context, I don't see what benefit opencv blobs have over pix_multi/blob; but perhaps I am missing something! ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Opencv pd
[EMAIL PROTECTED] wrote: I dont know if you have ever used pix_multiblob before. This would be my first option and I already just to make sure that we do not misunderstand each other: i had no intention in saying that you should stick to the existing objects. i thought that you should integrate your openCV objects into Gem and not brew your own objects. the problems you described (sending pointers to and fro), show that you do not create Gem objects (which would handle this stuff for you). mfg.asdr IOhannes ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Opencv pd
IOhannes m zmoelnig wrote: i thought that you should integrate your openCV objects into Gem and not brew your own objects. I too would like to make some objects in Gem. I have already done some openGL externals for max/msp (see lifeGL and lifeTorus at http://www.billvorn.concordia.ca/menuall.html) and would like to port them to pd. It seems the alternatives are to set a tcl/tk drawable as openGL, or Gem. Is there any documentation about the Gem API or is it all in the Gem source? Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Martin, Thanks for all your help. I have a final question about the sprintf solution. I have managed to get the out going(I think) but I am not quite undestanding the atol()inlet part. I have this. void window_getframe(t_window *x, t_symbol *sym) { char* decode; char symstr; x-sym-s_name = decode; symstr = atol(decode); frame = symstr; } But I get invalid conversion from 'char' to IplImage*'. I have to read some more. If I used sprintf to write to an array a string/image formatted as a pointer and then turned that pointer to a symbol, how do i now convert the symbol back to a pointer of the original image, which I assume should still be in buffer? Alain You can only work with atoms in pd's message system, and each atom usually contains a bang, a float or a symbol. You could convert the pointer to a float but it probably won't work because the pointer is a large integer that won't be accurately represented as a float. You could convert the pointer to a symbol using something like: char symstr[10]; t_symbol sym; sprintf(symstr, %p, frame); sym = gensym(symstr); ...then send sym through the outlet and convert it back to a pointer at the receiving end by extracting the string from the s_name field of the symbol and passing it to atol(). Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Alain wrote: void window_getframe(t_window *x, t_symbol *sym) { char* decode; char symstr; x-sym-s_name = decode; symstr = atol(decode); frame = symstr; } Is this the receiving function? I would write it more like: void window_getframe(t_window *x, t_symbol *sym) { IplImage * frame; frame = (IplImage *)atol(sym-s_name); } Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Yeah, I took the openCV blobtrack code from the examples and modified it just slightly. I didn't document all the changes, because it was never meant to last for more than one project. I simply added the pd netsend stuff, added a few sliders to control parameters, added an automatic background model refresher, and blacked out some areas of the image that I didn't want processed. Attached is the patch that I use to receive the blob data in Pd (also with some customizations). -Mike Nose Hair wrote: Sorry forgot to ask. Do you have a pd abstraction for this? If not I will see what I can cook up. I think iemmatrix might do the trick. Alain On May 29, 2007, at 8:08 PM, Nose Hair wrote: I see you have the ability to capture from an avi built in already: avi_name = argv[i]; if (avi_name) pCap = cvCaptureFromFile(avi_name); else pCap = cvCaptureFromCAM( 0 ) This is code looks great. I could figure it out from the code but if you have any use instructions let me know. It would be great to get a gui for this thing. I will try to figure that out. Thank you, Alain On May 29, 2007, at 6:58 PM, Nose Hair wrote: Thanks Mike, Its awsome how helpful people in this community can be. I will check out you code and modify it if need be, like add the option to use an avi in order to be able to calibrate things and such and I will post it. I will also continue to figure out the external because I think that would be a neater approach and cause I dont accept defeat very easily. Alain On May 29, 2007, at 4:55 PM, Mike Wozniewski wrote: Hi Alain, I've used the OpenCV blobtracker with Pd before, and I simply send blob positions and sizes over UDP using u_pdsend.c I've attached my code and makefile... look in blobtrack.c and search for where I use the pdsend_init() and pdsend_message() functions... it's pretty simple. Then you just use [netreceive] in Pd and parse the list as you deem necessary. Hope this helps, -Mike P.S. my blobtracker code is meant for use with a live camera, not with .avi files. blobTracker.tar.gz ___ PD-list@iem.at mailto:PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list #N struct trackerBlob float x float y float left float right float top float bottom symbol s; #N canvas 106 312 848 581 10; #X obj 106 -74 netreceive 8779; #X floatatom 206 -48 5 0 0 0 - - -; #N canvas 766 236 481 416 blob-data 0; #X scalar trackerBlob 127 312 -14 14 -13.5 13.5 blob1 \;; #X scalar trackerBlob 487 114 -13 13 -14.5 14.5 blob2 \;; #X scalar trackerBlob 471 63 -12.5 12.5 -14.5 14.5 blob3 \;; #X scalar trackerBlob 508 335 -16 16 -13 13 blob4 \;; #X scalar trackerBlob 184 285 -14.5 14.5 -19 19 blob5 \;; #X scalar trackerBlob 174 278 -17 17 -19.5 19.5 blob6 \;; #X coords 0 0 640 480 320 240 1; #X restore 436 -8 pd blob-data; #N canvas 84 22 1043 689 draw-blobs 0; #X obj 379 615 pointer; #X msg 379 593 traverse pd-blob-data \, next; #X obj 409 505 pointer; #X msg 409 483 traverse pd-blob-data \, next \, next; #X obj 409 462 loadbang; #X obj 379 572 loadbang; #X obj 441 401 pointer; #X obj 441 358 loadbang; #X msg 441 379 traverse pd-blob-data \, next \, next \, next; #X obj 485 297 pointer; #X obj 485 254 loadbang; #X msg 485 275 traverse pd-blob-data \, next \, next \, next \, next ; #X obj 97 640 set trackerBlob x y left right top bottom; #X obj 48 64 inlet; #X obj 238 615 * 0.5; #X obj 285 615 * -0.5; #X obj 191 615 * -0.5; #X obj 97 578 unpack 0 0 0 0; #X obj 332 615 * 0.5; #X obj 127 530 set trackerBlob x y left right top bottom; #X obj 268 505 * 0.5; #X obj 315 505 * -0.5; #X obj 221 505 * -0.5; #X obj 127 468 unpack 0 0 0 0; #X obj 362 505 * 0.5; #X obj 159 426 set trackerBlob x y left right top bottom; #X obj 300 401 * 0.5; #X obj 347 401 * -0.5; #X obj 253 401 * -0.5; #X obj 159 364 unpack 0 0 0 0; #X obj 394 401 * 0.5; #X obj 203 322 set trackerBlob x y left right top bottom; #X obj 344 297 * 0.5; #X obj 391 297 * -0.5; #X obj 297 297 * -0.5; #X obj 203 260 unpack 0 0 0 0; #X obj 438 297 * 0.5; #X obj 48 92 route 1 2 3 4 5 6; #X obj 511 192 pointer; #X obj 511 149 loadbang; #X obj 229 217 set trackerBlob x y left right top bottom; #X obj 370 192 * 0.5; #X obj 417 192 * -0.5; #X obj 323 192 * -0.5; #X obj 229 155 unpack 0 0 0 0; #X obj 464 192 * 0.5; #X msg 511 170 traverse pd-blob-data \, next \, next \, next \, next \, next; #X obj 531 82 pointer; #X obj 531 39 loadbang; #X obj 249 107 set trackerBlob x y left right top bottom; #X obj 390 82 * 0.5; #X obj 437 82 * -0.5; #X obj 343 82 * -0.5; #X obj 249 45 unpack 0 0 0 0; #X obj 484 82 * 0.5; #X msg 531 60 traverse pd-blob-data \, next \, next \, next \, next \, next \, next; #X connect 0 0 12 6; #X connect 1 0 0 0; #X connect 2 0 19 6; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 1 0; #X connect 6 0 25 6; #X connect 7 0 8 0; #X connect 8 0 6 0; #X connect 9 0 31 6; #X connect 10 0 11 0; #X
Re: [PD] Opencv pd
IO, I understand what you where saying. I just figured it would be easier to make a self contained external than to try to figure out how to convert things so that Gems GL stuff could use it. From what you are saying I was probably wrong. I just could not figure it out really and there was no how to for Gem like the how to you wrote for Pd (althogh the Gem sorce is documented well). Nanodust, When I said have you used pix_multiblob before I was not trying to be inflamatory I was just asking. From your reply I think it might have come out that way but it was not ment that way. I appreciate all input. Thanks to all, Alain From: IOhannes m zmoelnig [EMAIL PROTECTED] Date: 2007/05/30 Wed AM 09:57:55 EDT To: [EMAIL PROTECTED] CC: pd-list@iem.at Subject: Re: [PD] Opencv pd [EMAIL PROTECTED] wrote: I dont know if you have ever used pix_multiblob before. This would be my first option and I already just to make sure that we do not misunderstand each other: i had no intention in saying that you should stick to the existing objects. i thought that you should integrate your openCV objects into Gem and not brew your own objects. the problems you described (sending pointers to and fro), show that you do not create Gem objects (which would handle this stuff for you). mfg.asdr IOhannes ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Thanks for helping. Well I basically have a rough sketch of all the objects but I am having a tough time with the outlet system. In a nutshell opencv uses an image structure called typedef struct _IplImage. Acording to them The structure IplImage came from Intel Image Processing Library where the format is native. I can give you more information about it if you need it. My problem is sending the result from IplImage to an outlet and being able to receive it from an inlet. So far that is my bigest hurdle. I have this code: IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, frame); Obviously with more stuff in the middle but I keep getting this error from the compiler: error: cannot convert IplImage* to t_symbol for argument 2 to void outlet_anything(_outlet*, t_symbol*, int, t_atom*) I still havent figured a way around this. I am sure its easy but... Anyway Im trying to figure out the outlet first before I tackle the inlet. Any advise? Alain From: Tim Boykett [EMAIL PROTECTED] Date: 2007/05/29 Tue AM 05:18:54 EDT To: [EMAIL PROTECTED] [EMAIL PROTECTED] Subject: Re: opencv motion tracker external HELP! Hi Alain, how is this coming along? I gather that you got the tracker working as a standalone, but no luck with the external yet. Is that right? I would be interested in perhaps helping, but I thought I would check to see what was already working. cheers, tim On 27/05/2007, at 10:35 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the set of Pd externals using the same code with very little success. I need someone that knows what they are doing to look at my Pd code and show me what I am doing wrong. I have read and followed IOhannes guide on external writing. Also, I have looked at the zexy and pdp sorce code in order to learn but still I am not getting it to work. The externals are based on the already working code I was able to frankenstein together. I am calling it FTIR_Tools. It consist of the following (if I ever get them to work!): 1. FTIR_Cam: detects webcam and sends out frames to outlet. 2. FTIR_VPlayer: reads quicktimes from path and sends out frames to outlet. 3. FTIR_Tracker: tracks blobs, sends out matrix blob# position to outlet2 and frames to outlet 1. you can also turn on and off visuals for center point and bounding box. 4. FTIR_Window: displays frames in an X11 window. Please look at my code and show me how to fix it. I am getting nowhere. In the cvBloblib.zip is the program I put together called Tracker and the code called Tracker.cpp. If you want to see how it works drag it to terminal and follow it with a path to an .avi. You must have opencv and fink installed. If you have ploblems installing opencv post and I will be glad to help. Thanks, Alain FTIR_Tools(src).zip cvBloblib.zip ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/ listinfo/pd-list ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
[EMAIL PROTECTED] wrote: Thanks for helping. Well I basically have a rough sketch of all the objects but I am having a tough time with the outlet system. In a nutshell opencv uses an image structure called typedef struct _IplImage. Acording to them The structure IplImage came from Intel Image Processing Library where the format is native. I can give you more information about it if you need it. My problem is sending the result from IplImage to an outlet and being able to receive it from an inlet. So far that is my bigest hurdle. I have this code: IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, frame); Obviously with more stuff in the middle but I keep getting this error from the compiler: whoa don't do that. if you are sure that you have to send pointers around, then you should a) have a look at Gem (where this is done) or GridFlow and b) don't do it (Gem is using this for legacy reasons); really. even though pd has pointers, they are not meant for passing arbitrary data around. if you want to do it the clean way, you will have to create ids (numeric or symbolic), associate your data-chunks with ids, pass the ids through pd's messaging system and look them up at the receiving side. pdp does it like this. an alternative might be mrpeach's string/blob patch, but then you would rely on a patched pd, which is not a very good idea. if you are not sure, then i suggest to not do it that way (unless you want to spend some time in getting into coding) otoh, why don't you just use the Gem framework? i guess that you could fit the IplImage into an imageStruct with not much overhead (but then i don't know this structure; if it is fundamentally different from Gem's imageStruct you might lose everything you gained speedwise) if nothing else works, it might be simplest to just write your own application (without pd) and send the data to pd via your favourite protocol (FUDI, OSC, SMTP...) ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
I dont think I quite understood. I tried: #define FRAMEOUT frame IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, FRAMEOUT); with the same results. Maybe someone can dumb it down for me? Alain From: IOhannes m zmoelnig [EMAIL PROTECTED] Date: 2007/05/29 Tue AM 10:40:29 EDT To: [EMAIL PROTECTED] CC: Tim Boykett [EMAIL PROTECTED], pd-list@iem.at Subject: Re: [PD] opencv motion tracker external HELP! [EMAIL PROTECTED] wrote: Thanks for helping. Well I basically have a rough sketch of all the objects but I am having a tough time with the outlet system. In a nutshell opencv uses an image structure called typedef struct _IplImage. Acording to them The structure IplImage came from Intel Image Processing Library where the format is native. I can give you more information about it if you need it. My problem is sending the result from IplImage to an outlet and being able to receive it from an inlet. So far that is my bigest hurdle. I have this code: IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, frame); Obviously with more stuff in the middle but I keep getting this error from the compiler: whoa don't do that. if you are sure that you have to send pointers around, then you should a) have a look at Gem (where this is done) or GridFlow and b) don't do it (Gem is using this for legacy reasons); really. even though pd has pointers, they are not meant for passing arbitrary data around. if you want to do it the clean way, you will have to create ids (numeric or symbolic), associate your data-chunks with ids, pass the ids through pd's messaging system and look them up at the receiving side. pdp does it like this. an alternative might be mrpeach's string/blob patch, but then you would rely on a patched pd, which is not a very good idea. if you are not sure, then i suggest to not do it that way (unless you want to spend some time in getting into coding) otoh, why don't you just use the Gem framework? i guess that you could fit the IplImage into an imageStruct with not much overhead (but then i don't know this structure; if it is fundamentally different from Gem's imageStruct you might lose everything you gained speedwise) if nothing else works, it might be simplest to just write your own application (without pd) and send the data to pd via your favourite protocol (FUDI, OSC, SMTP...) ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
[EMAIL PROTECTED] wrote: I dont think I quite understood. I tried: #define FRAMEOUT frame IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, FRAMEOUT); with the same results. Maybe someone can dumb it down for me? just out or couriosity: how does this relate to my previous email? :-) sorry to not be much of a help here, but i currently have not the time to give you the deep insights into C/C++ and pd that you would be needed. mfga.sdr. IOhannes ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Hi Alain, wouldn't it be a lot easier to take the system that you already have and use OSC or FIDO to send the values (that you were printing) to PD for further processing? I am greatly in favour of using different systems for different jobs and letting a protocol like OSC or fido (netsend) connect them together. I could easily help you with that problem, if the code is running already. Cheers, tim On 27/05/2007, at 10:35 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the set of Pd externals using the same code with very little success. I need someone that knows what they are doing to look at my Pd code and show me what I am doing wrong. I have read and followed IOhannes guide on external writing. Also, I have looked at the zexy and pdp sorce code in order to learn but still I am not getting it to work. The externals are based on the already working code I was able to frankenstein together. I am calling it FTIR_Tools. It consist of the following (if I ever get them to work!): 1. FTIR_Cam: detects webcam and sends out frames to outlet. 2. FTIR_VPlayer: reads quicktimes from path and sends out frames to outlet. 3. FTIR_Tracker: tracks blobs, sends out matrix blob# position to outlet2 and frames to outlet 1. you can also turn on and off visuals for center point and bounding box. 4. FTIR_Window: displays frames in an X11 window. Please look at my code and show me how to fix it. I am getting nowhere. In the cvBloblib.zip is the program I put together called Tracker and the code called Tracker.cpp. If you want to see how it works drag it to terminal and follow it with a path to an .avi. You must have opencv and fink installed. If you have ploblems installing opencv post and I will be glad to help. Thanks, Alain FTIR_Tools(src).zip cvBloblib.zip ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/ listinfo/pd-list ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Martin, Thanks for your insight. I will look into that. It seems like sprintf/atoi is what I need to be looking at. Alain From: [EMAIL PROTECTED] Date: 2007/05/29 Tue AM 11:51:36 EDT To: pd-list@iem.at CC: Tim Boykett [EMAIL PROTECTED], IOhannes m zmoelnig [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: Re: Re: [PD] opencv motion tracker external HELP! I dont think I quite understood. I tried: #define FRAMEOUT frame IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, FRAMEOUT); with the same results. Maybe someone can dumb it down for me? You can only work with atoms in pd's message system, and each atom usually contains a bang, a float or a symbol. You could convert the pointer to a float but it probably won't work because the pointer is a large integer that won't be accurately represented as a float. You could convert the pointer to a symbol using something like: char symstr[10]; t_symbol sym; sprintf(symstr, %p, frame); sym = gensym(symstr); ...then send sym through the outlet and convert it back to a pointer at the receiving end by extracting the string from the s_name field of the symbol and passing it to atol(). Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
The Intel library struct is a different data type than the Pd symbol data type. Pd doesn't have any idea what your frame pointer is pointing to so it throw that error. You really need to have a working knowledge of C data types to do what you want to do. On 5/29/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: I dont think I quite understood. I tried: #define FRAMEOUT frame IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, FRAMEOUT); with the same results. Maybe someone can dumb it down for me? Alain From: IOhannes m zmoelnig [EMAIL PROTECTED] Date: 2007/05/29 Tue AM 10:40:29 EDT To: [EMAIL PROTECTED] CC: Tim Boykett [EMAIL PROTECTED], pd-list@iem.at Subject: Re: [PD] opencv motion tracker external HELP! [EMAIL PROTECTED] wrote: Thanks for helping. Well I basically have a rough sketch of all the objects but I am having a tough time with the outlet system. In a nutshell opencv uses an image structure called typedef struct _IplImage. Acording to them The structure IplImage came from Intel Image Processing Library where the format is native. I can give you more information about it if you need it. My problem is sending the result from IplImage to an outlet and being able to receive it from an inlet. So far that is my bigest hurdle. I have this code: IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, frame); Obviously with more stuff in the middle but I keep getting this error from the compiler: whoa don't do that. if you are sure that you have to send pointers around, then you should a) have a look at Gem (where this is done) or GridFlow and b) don't do it (Gem is using this for legacy reasons); really. even though pd has pointers, they are not meant for passing arbitrary data around. if you want to do it the clean way, you will have to create ids (numeric or symbolic), associate your data-chunks with ids, pass the ids through pd's messaging system and look them up at the receiving side. pdp does it like this. an alternative might be mrpeach's string/blob patch, but then you would rely on a patched pd, which is not a very good idea. if you are not sure, then i suggest to not do it that way (unless you want to spend some time in getting into coding) otoh, why don't you just use the Gem framework? i guess that you could fit the IplImage into an imageStruct with not much overhead (but then i don't know this structure; if it is fundamentally different from Gem's imageStruct you might lose everything you gained speedwise) if nothing else works, it might be simplest to just write your own application (without pd) and send the data to pd via your favourite protocol (FUDI, OSC, SMTP...) ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
You are right it would be. It would also be easier to make a self contained external with just one object and just use pd message system to output a list. I appreciate your help. I guess I will try to finish what I started using Martins suggestions and work on a standalone app at the same time. Is there a good reference webpage on how to integrate OSC that you can point me to? would the cpu take a buigger performance hit this way? Alain From: Tim Boykett [EMAIL PROTECTED] Date: 2007/05/29 Tue AM 11:45:08 EDT To: [EMAIL PROTECTED] [EMAIL PROTECTED] CC: pd-list@iem.at, [EMAIL PROTECTED] Subject: Re: [PD] opencv motion tracker external HELP! Hi Alain, wouldn't it be a lot easier to take the system that you already have and use OSC or FIDO to send the values (that you were printing) to PD for further processing? I am greatly in favour of using different systems for different jobs and letting a protocol like OSC or fido (netsend) connect them together. I could easily help you with that problem, if the code is running already. Cheers, tim ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
I dont think I quite understood. I tried: #define FRAMEOUT frame IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, FRAMEOUT); with the same results. Maybe someone can dumb it down for me? You can only work with atoms in pd's message system, and each atom usually contains a bang, a float or a symbol. You could convert the pointer to a float but it probably won't work because the pointer is a large integer that won't be accurately represented as a float. You could convert the pointer to a symbol using something like: char symstr[10]; t_symbol sym; sprintf(symstr, %p, frame); sym = gensym(symstr); ...then send sym through the outlet and convert it back to a pointer at the receiving end by extracting the string from the s_name field of the symbol and passing it to atol(). Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
I just realized I should be posting in the pd-dev list so from now on any questions I have relating to this project will be posted there. Martin, I am getting a weird error when I try sym = gensym(symstr); I get no match for 'operator=' in 'sym = gensym(((char*)( symstr)))' I dont know what thats all about. I have seen this used before with no problems. Alain From: [EMAIL PROTECTED] Date: 2007/05/29 Tue AM 11:51:36 EDT To: pd-list@iem.at CC: Tim Boykett [EMAIL PROTECTED], IOhannes m zmoelnig [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: Re: Re: [PD] opencv motion tracker external HELP! I dont think I quite understood. I tried: #define FRAMEOUT frame IplImage *frame = 0; x-x_outlet = outlet_new(x-x_obj, s_anything); outlet_anything(x-x_outlet, FRAMEOUT); with the same results. Maybe someone can dumb it down for me? You can only work with atoms in pd's message system, and each atom usually contains a bang, a float or a symbol. You could convert the pointer to a float but it probably won't work because the pointer is a large integer that won't be accurately represented as a float. You could convert the pointer to a symbol using something like: char symstr[10]; t_symbol sym; sprintf(symstr, %p, frame); sym = gensym(symstr); ...then send sym through the outlet and convert it back to a pointer at the receiving end by extracting the string from the s_name field of the symbol and passing it to atol(). Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Hi Alain, I've used the OpenCV blobtracker with Pd before, and I simply send blob positions and sizes over UDP using u_pdsend.c I've attached my code and makefile... look in blobtrack.c and search for where I use the pdsend_init() and pdsend_message() functions... it's pretty simple. Then you just use [netreceive] in Pd and parse the list as you deem necessary. Hope this helps, -Mike P.S. my blobtracker code is meant for use with a live camera, not with .avi files. blobTracker.tar.gz Description: GNU Zip compressed data ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Alain wrote: I am getting a weird error when I try sym = gensym(symstr); I get no match for 'operator=' in 'sym = gensym(((char*)( symstr)))' I dont know what thats all about. I have seen this used before with no problems. That looks like a c++ error to me, maybe you should be compiling it as c? Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
I think I figured it out. It looks like I have to use t_symbol *sym instead of t_symbol sym and the outlet has to be x-outlet_new(x- x_outlet0, *sym). That seemed to work. The weird problem I am having now it I get an error with the return(void *)x; I get error: return-statement with a value, in function returning 'void'. Now I see return(void *)x; on almost all the external codes so I don't get it. I am also getting an error on the void your_class_setup (void) { part too. Error: a function-definition is not allowed here before '{' token. I am confused. About compiling as C, the problem is that I am using c ++ headers from the opencv library and I don't know if I can compile as C? Thanks alot for your help. Alain On May 29, 2007, at 5:25 PM, [EMAIL PROTECTED] wrote: Alain wrote: I am getting a weird error when I try sym = gensym(symstr); I get no match for 'operator=' in 'sym = gensym(((char*)( symstr)))' I dont know what thats all about. I have seen this used before with no problems. That looks like a c++ error to me, maybe you should be compiling it as c? Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Thanks Mike, Its awsome how helpful people in this community can be. I will check out you code and modify it if need be, like add the option to use an avi in order to be able to calibrate things and such and I will post it. I will also continue to figure out the external because I think that would be a neater approach and cause I dont accept defeat very easily. Alain On May 29, 2007, at 4:55 PM, Mike Wozniewski wrote: Hi Alain, I've used the OpenCV blobtracker with Pd before, and I simply send blob positions and sizes over UDP using u_pdsend.c I've attached my code and makefile... look in blobtrack.c and search for where I use the pdsend_init() and pdsend_message() functions... it's pretty simple. Then you just use [netreceive] in Pd and parse the list as you deem necessary. Hope this helps, -Mike P.S. my blobtracker code is meant for use with a live camera, not with .avi files. blobTracker.tar.gz ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
I see you have the ability to capture from an avi built in already: avi_name = argv[i]; if (avi_name) pCap = cvCaptureFromFile(avi_name); else pCap = cvCaptureFromCAM( 0 ) This is code looks great. I could figure it out from the code but if you have any use instructions let me know. It would be great to get a gui for this thing. I will try to figure that out. Thank you, Alain On May 29, 2007, at 6:58 PM, Nose Hair wrote: Thanks Mike, Its awsome how helpful people in this community can be. I will check out you code and modify it if need be, like add the option to use an avi in order to be able to calibrate things and such and I will post it. I will also continue to figure out the external because I think that would be a neater approach and cause I dont accept defeat very easily. Alain On May 29, 2007, at 4:55 PM, Mike Wozniewski wrote: Hi Alain, I've used the OpenCV blobtracker with Pd before, and I simply send blob positions and sizes over UDP using u_pdsend.c I've attached my code and makefile... look in blobtrack.c and search for where I use the pdsend_init() and pdsend_message() functions... it's pretty simple. Then you just use [netreceive] in Pd and parse the list as you deem necessary. Hope this helps, -Mike P.S. my blobtracker code is meant for use with a live camera, not with .avi files. blobTracker.tar.gz ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/ listinfo/pd-list ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
Sorry forgot to ask. Do you have a pd abstraction for this? If not I will see what I can cook up. I think iemmatrix might do the trick. Alain On May 29, 2007, at 8:08 PM, Nose Hair wrote: I see you have the ability to capture from an avi built in already: avi_name = argv[i]; if (avi_name) pCap = cvCaptureFromFile(avi_name); else pCap = cvCaptureFromCAM( 0 ) This is code looks great. I could figure it out from the code but if you have any use instructions let me know. It would be great to get a gui for this thing. I will try to figure that out. Thank you, Alain On May 29, 2007, at 6:58 PM, Nose Hair wrote: Thanks Mike, Its awsome how helpful people in this community can be. I will check out you code and modify it if need be, like add the option to use an avi in order to be able to calibrate things and such and I will post it. I will also continue to figure out the external because I think that would be a neater approach and cause I dont accept defeat very easily. Alain On May 29, 2007, at 4:55 PM, Mike Wozniewski wrote: Hi Alain, I've used the OpenCV blobtracker with Pd before, and I simply send blob positions and sizes over UDP using u_pdsend.c I've attached my code and makefile... look in blobtrack.c and search for where I use the pdsend_init() and pdsend_message() functions... it's pretty simple. Then you just use [netreceive] in Pd and parse the list as you deem necessary. Hope this helps, -Mike P.S. my blobtracker code is meant for use with a live camera, not with .avi files. blobTracker.tar.gz ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/ listinfo/pd-list ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
I haven't looked at this yet, and have no external coding experience. However, I'm wondering if it would be an easier task to port this library to mimic the pix_* objects in Gem? Maybe you could look at the Gem source and figure out how to do this. Or better yet, compare the code you have here with the pix_multiblob, and try to correct the algorithms as was suggested earlier. Good luck!!! ~Kyle On 5/27/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the set of Pd externals using the same code with very little success. I need someone that knows what they are doing to look at my Pd code and show me what I am doing wrong. I have read and followed IOhannes guide on external writing. Also, I have looked at the zexy and pdp sorce code in order to learn but still I am not getting it to work. The externals are based on the already working code I was able to frankenstein together. I am calling it FTIR_Tools. It consist of the following (if I ever get them to work!): 1. FTIR_Cam: detects webcam and sends out frames to outlet. 2. FTIR_VPlayer: reads quicktimes from path and sends out frames to outlet. 3. FTIR_Tracker: tracks blobs, sends out matrix blob# position to outlet2 and frames to outlet 1. you can also turn on and off visuals for center point and bounding box. 4. FTIR_Window: displays frames in an X11 window. Please look at my code and show me how to fix it. I am getting nowhere. In the cvBloblib.zip is the program I put together called Tracker and the code called Tracker.cpp. If you want to see how it works drag it to terminal and follow it with a path to an .avi. You must have opencv and fink installed. If you have ploblems installing opencv post and I will be glad to help. Thanks, Alain ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- - - - -- http://perhapsidid.wordpress.com ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
The Gem stuff is complex and done by people who actually know what they are doing. All I am trying to do is port parts of an already made (and very,very simple to code) library to Pd. I also have no coding experience except for this project. I have never even seen C code before 2 weeks ago, but the C code for opencv is easy enough for a noob like me to write an application that calls on those libraries. If you are interested check out my Tracker.cpp code. The difficult part (for me) is turning that code into something Pd can use. Also since it would require that you compile and install opencv I think it would be a pain for the enduser to be included inside Gem. I think most people that use Gem are not interested in a blob tracker. That is why I needed to write my own. My goal is to use the tracker output to control Geos in Gem using iemmatrix and other goodies. BTW the algorithms for pix_multiblob are way, way over my head(seriously)! Alain From: Kyle Klipowicz [EMAIL PROTECTED] Date: 2007/05/27 Sun PM 10:17:02 EDT To: [EMAIL PROTECTED] [EMAIL PROTECTED] CC: pd-list@iem.at, [EMAIL PROTECTED] Subject: Re: [PD] opencv motion tracker external HELP! I haven't looked at this yet, and have no external coding experience. However, I'm wondering if it would be an easier task to port this library to mimic the pix_* objects in Gem? Maybe you could look at the Gem source and figure out how to do this. Or better yet, compare the code you have here with the pix_multiblob, and try to correct the algorithms as was suggested earlier. Good luck!!! ~Kyle On 5/27/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the set of Pd externals using the same code with very little success. I need someone that knows what they are doing to look at my Pd code and show me what I am doing wrong. I have read and followed IOhannes guide on external writing. Also, I have looked at the zexy and pdp sorce code in order to learn but still I am not getting it to work. The externals are based on the already working code I was able to frankenstein together. I am calling it FTIR_Tools. It consist of the following (if I ever get them to work!): 1. FTIR_Cam: detects webcam and sends out frames to outlet. 2. FTIR_VPlayer: reads quicktimes from path and sends out frames to outlet. 3. FTIR_Tracker: tracks blobs, sends out matrix blob# position to outlet2 and frames to outlet 1. you can also turn on and off visuals for center point and bounding box. 4. FTIR_Window: displays frames in an X11 window. Please look at my code and show me how to fix it. I am getting nowhere. In the cvBloblib.zip is the program I put together called Tracker and the code called Tracker.cpp. If you want to see how it works drag it to terminal and follow it with a path to an .avi. You must have opencv and fink installed. If you have ploblems installing opencv post and I will be glad to help. Thanks, Alain ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- - - - -- http://perhapsidid.wordpress.com ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] opencv motion tracker external HELP!
The Gem stuff is complex and done by people who actually know what they are doing. All I am trying to do is port parts of an already made (and very,very simple to code) library to Pd. I also have no coding experience except for this project. I have never even seen C code before 2 weeks ago, but the C code for opencv is easy enough for a noob like me to write an application that calls on those libraries. If you are interested check out my Tracker.cpp code. The difficult part (for me) is turning that code into something Pd can use. Also since it would require that you compile and install opencv I think it would be a pain for the enduser to be included inside Gem. I think most people that use Gem are not interested in a blob tracker. That is why I needed to write my own. My goal is to use the tracker output to control Geos in Gem using iemmatrix and other goodies. BTW the algorithms for pix_multiblob are way, way over my head(seriously)! Alain From: Kyle Klipowicz [EMAIL PROTECTED] Date: 2007/05/27 Sun PM 10:17:02 EDT To: [EMAIL PROTECTED] [EMAIL PROTECTED] CC: pd-list@iem.at, [EMAIL PROTECTED] Subject: Re: [PD] opencv motion tracker external HELP! I haven't looked at this yet, and have no external coding experience. However, I'm wondering if it would be an easier task to port this library to mimic the pix_* objects in Gem? Maybe you could look at the Gem source and figure out how to do this. Or better yet, compare the code you have here with the pix_multiblob, and try to correct the algorithms as was suggested earlier. Good luck!!! ~Kyle On 5/27/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: For the last 2 weeks I have been trying to write a motion tracking external using the blob motion tracker in opencv. I had success with writing a program that recieves a path to an avi and motion tracks the blobs and prints their position. Now I am writing the set of Pd externals using the same code with very little success. I need someone that knows what they are doing to look at my Pd code and show me what I am doing wrong. I have read and followed IOhannes guide on external writing. Also, I have looked at the zexy and pdp sorce code in order to learn but still I am not getting it to work. The externals are based on the already working code I was able to frankenstein together. I am calling it FTIR_Tools. It consist of the following (if I ever get them to work!): 1. FTIR_Cam: detects webcam and sends out frames to outlet. 2. FTIR_VPlayer: reads quicktimes from path and sends out frames to outlet. 3. FTIR_Tracker: tracks blobs, sends out matrix blob# position to outlet2 and frames to outlet 1. you can also turn on and off visuals for center point and bounding box. 4. FTIR_Window: displays frames in an X11 window. Please look at my code and show me how to fix it. I am getting nowhere. In the cvBloblib.zip is the program I put together called Tracker and the code called Tracker.cpp. If you want to see how it works drag it to terminal and follow it with a path to an .avi. You must have opencv and fink installed. If you have ploblems installing opencv post and I will be glad to help. Thanks, Alain ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- - - - -- http://perhapsidid.wordpress.com ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list