00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <vil/vil_load.h>
00020 #include <vil/vil_save.h>
00021 #include <vil/vil_image_view.h>
00022 #include <vipl/accessors/vipl_accessors_vil_image_view.h>
00023 #include <vipl/vipl_threshold.h>
00024 #include <vcl_iostream.h>
00025 #include <vcl_cstdlib.h>
00026 #include <vxl_config.h>
00027
00028 int
00029 main(int argc, char** argv)
00030 {
00031 if (argc < 3) { vcl_cerr << "Syntax: example1_threshold file_in file_out [threshold]\n"; return 1; }
00032
00033
00034 vil_image_view<vxl_byte> in = vil_load(argv[1]);
00035 if (!in) return 2;
00036 vil_image_view<vxl_byte>* src = ∈
00037
00038
00039 vil_image_view<vxl_byte> out(in.ni(),in.nj(),in.nplanes());
00040 vil_image_view<vxl_byte>* dst = &out;
00041
00042
00043 vxl_byte threshold = (argc < 4) ? 127 : vcl_atoi(argv[3]);
00044
00045
00046 vipl_threshold<vil_image_view<vxl_byte>,vil_image_view<vxl_byte>,vxl_byte,vxl_byte> op(threshold,0);
00047
00048 op.put_in_data_ptr(src);
00049 op.put_out_data_ptr(dst);
00050 op.filter();
00051
00052 vil_save(out, argv[2], "pnm");
00053 vcl_cout << "Written thresholded image of type PGM to " << argv[2] << vcl_endl;
00054 return 0;
00055 }