From: Eric M. <eri...@ya...> - 2008-09-10 13:21:52
|
I would like to propose that the following code be added to vil_rgb.h -------cut here---------- template <> inline vcl_ostream& operator<< <vxl_byte> (vcl_ostream& s, vil_rgb<vxl_byte> const& rgb) { return s << '[' << (int)rgb.r << ' ' << (int)rgb.g << ' ' << (int)rgb.b << ']'; } -------cut here---------- This code specializes the stream insertion operator to correctly handle statements like : vcl_cerr << "Pixel 100,100 = " << img(100,100) << vcl_endl; when the underlying type of the image is bytes. This is important because that line of code is from the introductory section of the vxl book (http://public.kitware.com/vxl/doc/release/books/core/book_2.html#SEC21) and is one of the first things a new user (such as myself) will run. As currently implemented, if the pixel at 100,100 is 65,65,65, the code will print: Pixel 100,100 = [A A A] Where with the above modification, it will print: Pixel 100,100 = [65 65 65] |
From: Peter V. <pet...@ya...> - 2008-09-10 21:09:44
|
> As currently implemented, if the pixel at 100,100 is 65,65,65, the code will print: > Pixel 100,100 = [A A A] > > Where with the above modification, it will print: > Pixel 100,100 = [65 65 65] Thanks for noting this! In the "old" vil1 implementation, we indeed had it set up as you explained. I've copied the vil1 specialisation setup to vil; actually, the "fix" is in core/vil/Templates/vil_rgb+byte-.cxx while core/vil/vil_rgb.h need not be changed. The change is checked in into CVS: Index: core/vil/Templates/vil_rgb+byte-.cxx =================================================================== RCS file: /cvsroot/vxl/vxl/core/vil/Templates/vil_rgb+byte-.cxx,v diff -r1.1 -r1.2 vil_rgb+byte-.cxx 3a4,9 > VCL_DEFINE_SPECIALIZATION > vcl_ostream& operator<<(vcl_ostream& s, vil_rgb<vxl_byte> const& rgb) > { > return s << '[' << (int)rgb.r << ' ' << (int)rgb.g << ' ' << (int)rgb.b << ']'; > } > The macro "VCL_DEFINE_SPECIALIZATION" is used in order to make specialisations work on "any" compiler. For most compilers it of course turns into your proposal. Let us know if it works this way. -- Peter. __________________________________________________________ Ta semester! - sök efter resor hos Kelkoo. Jämför pris på flygbiljetter och hotellrum här: http://www.kelkoo.se/c-169901-resor-biljetter.html?partnerId=96914052 |