void dump(const cFileOriMnt &aFileOriMnt, const string &aPrefix = string(), ostream &aStream = cout) { aStream << aPrefix << "NameFileMnt = [" << aFileOriMnt.NameFileMnt() << ']' << endl; if (aFileOriMnt.NameFileMasque().IsInit()) aStream << aPrefix << "NameFileMasque = [" << aFileOriMnt.NameFileMasque().Val() << ']' << endl; aStream << aPrefix << "NombrePixels = " << aFileOriMnt.NombrePixels() << endl; aStream << aPrefix << "OriginePlani = " << aFileOriMnt.OriginePlani() << endl; aStream << aPrefix << "ResolutionPlani = " << aFileOriMnt.ResolutionPlani() << endl; aStream << aPrefix << "OrigineAlti = " << aFileOriMnt.OrigineAlti() << endl; aStream << aPrefix << "ResolutionAlti = " << aFileOriMnt.ResolutionAlti() << endl; if (aFileOriMnt.NumZoneLambert().IsInit()) aStream << aPrefix << "NumZoneLambert = " << aFileOriMnt.NumZoneLambert().Val() << endl; aStream << aPrefix << "Geometrie = " << eToString(aFileOriMnt.Geometrie()) << endl; if (aFileOriMnt.OrigineTgtLoc().IsInit()) aStream << aPrefix << "OrigineTgtLoc = " << aFileOriMnt.OrigineTgtLoc().Val() << endl; if (aFileOriMnt.Rounding().IsInit()) aStream << aPrefix << "Rounding = " << aFileOriMnt.Rounding().Val() << endl; }
int Jeremy_main( int argc, char **argv ) { if ( argc<2 ) return EXIT_FAILURE; Tiff_Im tiff(argv[1]); cout << '[' << argv[1] << "]: sz = " << tiff.sz() << 'x' << tiff.nb_chan() << ' ' << eToString(tiff.type_el()) << endl; Im2DGen image = tiff.ReadIm(); cout << '[' << argv[1] << "]: sz = " << image.sz() << ' ' << eToString(image.TypeEl()) << endl; ELISE_COPY ( image.all_pts(), Virgule( image.in(), image.in(), image.in() ), Tiff_Im( "toto.tif", image.sz(), image.TypeEl(), Tiff_Im::No_Compr, Tiff_Im::RGB, ArgOpTiffMDP(argv[1])/*Tiff_Im::Empty_ARG*/ ).out() ); return EXIT_SUCCESS; }
void convolute() { const string filename = "61.030.tif"; REAL sigma = 3.2; int nbShift = 15; double epsilon = 0.001; int surEch = 10; ConvolutionKernel1D<INT> kernel; integralGaussianKernel<INT>(sigma, nbShift, epsilon, surEch, kernel); const vector<INT> &c = kernel.coefficients(); cout << "kernel.size() = " << kernel.size() << endl; for (size_t i = 0; i < kernel.size(); i++) cout << c[i] << ' '; cout << endl; ConvolutionHandler<U_INT2> convolutionHandler; cConvolSpec<U_INT2> *convolution1d = convolutionHandler.getConvolution(kernel); cout << "convolution is " << ( !convolution1d->IsCompiled() ? "not " : "") << "compiled" << endl; Tiff_Im tiff(filename.c_str()); cout << "[" << filename << "]: " << tiff.sz() << 'x' << tiff.nb_chan() << ' ' << eToString(tiff.type_el()) << endl; Im2DGen src_gen = tiff.ReadIm(); Im2D_U_INT2 image0; if (tiff.type_el() != GenIm::u_int1) ELISE_ERROR_EXIT("bad type"); { U_INT1 *src = ((Im2D_U_INT1 *) &src_gen)->data_lin(); image0.Resize(tiff.sz()); cout << "src_gen.sz() = " << src_gen.sz() << " image0.sz() = " << image0.sz() << endl; U_INT2 *dst = image0.data_lin(); size_t i = size_t(image0.tx()) * size_t(image0.ty()); while (i--) *dst++ = (U_INT2)(*src++) * 257; } Im2D_U_INT2 image1(image0.tx(), image0.ty()); Im2D_U_INT2 *src = &image0, *dst = &image1; int nbConvol = 10; while (nbConvol--) { convolution<U_INT2>((const U_INT2 **)src->data(), src->tx(), src->ty(), *convolution1d, dst->data()); ElSwap<Im2D_U_INT2 *>(src, dst); } Im2D_U_INT1 imageToWrite(src->tx(), src->ty()); { U_INT2 *itSrc = src->data_lin(); U_INT1 *itDst = imageToWrite.data_lin(); size_t i = size_t(src->tx()) * size_t(src->ty()); while (i--) *itDst++ = (U_INT1)((*itSrc++) / 257); } ELISE_COPY ( imageToWrite.all_pts(), imageToWrite.in(), Tiff_Im( "toto.tif", imageToWrite.sz(), GenIm::u_int1, Tiff_Im::No_Compr, Tiff_Im::BlackIsZero, Tiff_Im::Empty_ARG ).out() ); }
void getGrayImage(const string &aFilename, Im2D_U_INT1 &oGrayImage) { if ( !Tiff_Im::IsTiff(aFilename.c_str())) ELISE_ERROR_EXIT("[" << aFilename << "] is not a TIFF file"); MultiChannel<U_INT1> channels; if ( !channels.read_tiff(aFilename)) ELISE_ERROR_EXIT("failed to read TIFF image [" << aFilename << "]"); cout << '\t' << "-- [" << aFilename << "] read: " << channels.width() << 'x' << channels.height() << 'x' << channels.nbChannels() << ' ' << eToString(channels.typeEl()) << endl; if (channels.typeEl() != GenIm::u_int1 || channels.nbChannels() == 2) ELISE_ERROR_EXIT("invalid image format: " << channels.nbChannels() << ' ' << eToString(channels.typeEl())); channels.toGrayScale(oGrayImage); }