
Hi all, I am currently thinking on how to handle pipelines in some of my application. By pipeline, I mean "something" in which I can set an input, add some processing on that input, and retrieve the output (the result of the processing). If I am not clear enough, let's go with an example. Suppose I have an image, and I want first to crop it, then apply a filter on the crop and get the result in another image. Does boost has a library with such a feature? Best regards, Olivier ----------------------------------------------------- Olivier Tournaire MATIS - Institut Géographique National 73, Ave de Paris 94165 St Mandé cedex, France tel: (+33) 1 43 98 84 29 fax: (+33) 1 43 98 85 81

Hi Olivier,
I am currently thinking on how to handle pipelines in some of my application. By pipeline, I mean "something" in which I can set an input, add some processing on that input, and retrieve the output (the result of the processing). If I am not clear enough, let's go with an example. Suppose I have an image, and I want first to crop it, then apply a filter on the crop and get the result in another image. Does boost has a library with such a feature?
I remember that someone proposed boost::dataflow once upon a time ago. The project did get pretty far but was never finished or submitted for review, I believe. You might find it the vault or the sandbox. Regards, Christian

Am 02.11.2010 16:49, schrieb Olivier Tournaire:
Hi all,
I am currently thinking on how to handle pipelines in some of my application. By pipeline, I mean "something" in which I can set an input, add some processing on that input, and retrieve the output (the result of the processing).
If I am not clear enough, let's go with an example. Suppose I have an image, and I want first to crop it, then apply a filter on the crop and get the result in another image.
Does boost has a library with such a feature?
Best regards,
Olivier Hi,
those "Pipelines" are called streams in C++, and boost does provide a library for streams (boost.iostream). However, given this image-example I'd not recomend you to use streams for this as those require copying, proxy object or move-semantics. Moreover iostreams are not thought to pass whole objects, but little pieces of information instead (like chars). This doesn't mean that you can't use the operators << and >> for this though. You might want to look at boost.Proto to build a lazy evaluated expressions. If you really try to build such an Image-Library, look at boost.GIL first. Regards, michi7x7

Hi,
Thank you Christian for your answer. I remember now this library
announcement on the list. However, I am not sure to use it, since we do not
know what is its developpement status. However, seems to be great and
provides some tutorials based on GIL. I tried to play with but do not know
how to deal between image and image_view.
2010/11/2 michi7x7
Am 02.11.2010 16:49, schrieb Olivier Tournaire:
those "Pipelines" are called streams in C++, and boost does provide a library for streams (boost.iostream). However, given this image-example I'd not recomend you to use streams for this as those require copying, proxy object or move-semantics. Moreover iostreams are not thought to pass whole objects, but little pieces of information instead (like chars).
This doesn't mean that you can't use the operators << and >> for this though. You might want to look at boost.Proto to build a lazy evaluated expressions.
If you really try to build such an Image-Library, look at boost.GIL first.
GIL does not provide such stuffs. Sure however I will use GIL. Regards, Olivier
Regards,
michi7x7
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Hi Olivier,
Thank you Christian for your answer. I remember now this library announcement on the list. However, I am not sure to use it, since we do not know what is its developpement status. However, seems to be great and provides some tutorials based on GIL. I tried to play with but do not know how to deal between image and image_view.
Not sure I follow. But when passing image data from operator to operator I would use image_views. Here is a link to the signal network from Stjepan Rajko: http://dancinghacker.com/code/signet/ Regards, Christian

Hi Christian,
2010/11/3 Christian Henning
Hi Olivier,
Thank you Christian for your answer. I remember now this library announcement on the list. However, I am not sure to use it, since we do not know what is its developpement status. However, seems to be great and provides some tutorials based on GIL. I tried to play with but do not know how to deal between image and image_view.
Not sure I follow. But when passing image data from operator to operator I would use image_views.
That was my first idea. However, as I am not very familiar with signals, I am facing problems and I still do not understand the basics of signals. The problem: GIL algorithms and reader can return image_views (e.g. subimage_view), or be applied in place on an image (e.g. transform_pixels). Will post a sample code to demonstrate my problem...
Here is a link to the signal network from Stjepan Rajko:
Yep, found it! Regards, Olivier
Regards, Christian _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (3)
-
Christian Henning
-
michi7x7
-
Olivier Tournaire