Go to the documentation of this file.00001
00002 #ifndef vepl_convert_txx_
00003 #define vepl_convert_txx_
00004
00005 #include "vepl_convert.h"
00006 #include <vipl/accessors/vipl_accessors_vil1_image.h>
00007 #include <vipl/vipl_convert.h>
00008 #include <vil1/vil1_memory_image_of.h>
00009 #include <vxl_config.h>
00010
00011 template <class D>
00012 vil1_image vepl_convert(vil1_image const& image, D )
00013 {
00014
00015 if (vil1_pixel_format(image) == VIL1_BYTE) {
00016 vil1_memory_image_of<vxl_byte> mem(image);
00017 vil1_memory_image_of<D > out(image);
00018 vipl_convert<vil1_image,vil1_image,vxl_byte,D> op;
00019 op.put_in_data_ptr(&mem);
00020 op.put_out_data_ptr(&out);
00021 op.filter();
00022 return out;
00023 }
00024
00025
00026 else if (vil1_pixel_format(image) == VIL1_UINT16) {
00027 vil1_memory_image_of<vxl_uint_16> mem(image);
00028 vil1_memory_image_of<vxl_uint_16> out(image);
00029 vipl_convert<vil1_image,vil1_image,vxl_uint_16,D> op;
00030 op.put_in_data_ptr(&mem);
00031 op.put_out_data_ptr(&out);
00032 op.filter();
00033 return out;
00034 }
00035
00036
00037 else if (vil1_pixel_format(image) == VIL1_FLOAT) {
00038 vil1_memory_image_of<float> mem(image);
00039 vil1_memory_image_of<D > out(image);
00040 vipl_convert<vil1_image,vil1_image,float,D> op;
00041 op.put_in_data_ptr(&mem);
00042 op.put_out_data_ptr(&out);
00043 op.filter();
00044 return out;
00045 }
00046
00047
00048 else if (vil1_pixel_format(image) == VIL1_DOUBLE) {
00049 vil1_memory_image_of<double> mem(image);
00050 vil1_memory_image_of<D > out(image);
00051 vipl_convert<vil1_image,vil1_image,double,D> op;
00052 op.put_in_data_ptr(&mem);
00053 op.put_out_data_ptr(&out);
00054 op.filter();
00055 return out;
00056 }
00057
00058
00059 else {
00060 vcl_cerr << __FILE__ ": vepl_convert() not implemented for " << image << vcl_endl;
00061 return 0;
00062 }
00063 }
00064
00065 #endif // vepl_convert_txx_