Oops, how could I miss that. Thank you Rashad. PS: I added a wiki page using your remote module description template, and linked it on the remote modules list <http://wiki.orfeo-toolbox.org/index.php/Remote_Modules_List>.
Le mercredi 19 août 2015 12:51:46 UTC+2, Rashad M a écrit : > > > Hello, > > On Wed, Aug 19, 2015 at 11:18 AM, remicres <[email protected] > <javascript:>> wrote: > > Including #include "itkObjectyFactory.h" in otbMosaic.cxx did not solve > the issue, but I think it must be added in another place (actualy it may be > not the application, but another component, otbQuadraticallySimpleSolver, > with inherits from itk::lightObject). I've commited the changes. Let's see > how the next mingw compilation terminate! > > > Ok. we will see tomorrow. > > > Apart from that, all my tests are failing. It seems like nothing is > written in the temporary file, but directly in the baseline instead. I've > double checked my testing cmake file, but I still don't get it. > > > https://github.com/remicres/otb-mosaic/blob/master/test/CMakeLists.txt#L6 > here > > -out ${BASELINE}/apTvMosaicTestLargeFeathering.tif uint8 > > -out ${TEMP}/apTvMosaicTestLargeFeathering.tif uint8 > > would do the fix there and other places too. > > For reference see this > https://git.orfeo-toolbox.org/otb.git/blob/HEAD:/Modules/Applications/AppOpticalCalibration/test/CMakeLists.txt > > > Le mardi 18 août 2015 10:47:00 UTC+2, Rashad M a écrit : > > Hello Rémi, > > On Mon, Aug 17, 2015 at 12:28 PM, Rémi Cresson <[email protected]> wrote: > > Hello Rashad, > > I have committed the changes about tests (Here > <http://expirebox.com/download/e7d569ed52b38534ee246c9ecd958730.html> is > an archive containing specific input files and baseline). > > > I had added your data to otb-data.git with this commit - > https://git.orfeo-toolbox.org/otb-data.git > > > https://git.orfeo-toolbox.org/otb-data.git/commit/ed441021e2e6fedd74180266eca80488095b510d > > > > > > What I did is some general uses case tests only, I'm afraid that testing > all application cases would lead to a large number of tests and basename > files! > > > Now I am trying to fix compilation outputs given by the otb dashboard > (Still trying to fix windows mingw errors now). > > > > including #include "itkObjectyFactory.h" in otbMosaic.cxx would do the > trick. see a related discussion > > > https://groups.google.com/forum/#!searchin/otb-developers/inheritence$20of$20itk/otb-developers/xtexHxH7ey8/F_vvXX4K89wJ > > > > It could be nice to define how input data and baseline could be managed (I > guess remote modules developpers have to take care of it: specific test > data folder in the module repository?) > > > Yes, this should be discussed in otb-developers in a seperate thread. > > > > 2015-08-13 19:01 GMT+02:00 Rashad M <[email protected]>: > > What I mean is instead of mosaic1Test1_result.tif > > For example, > it can be apTvMosaicTestWithSpacing.tif , > apTvMosaicTestWithoutSpacing.tif etc.. so it would be easier to search > when looking for files in OTB-Data repo. > > apTv - For application > Mosaic - Name of application > WithSpacing/ WithoutSpacing - a prefix i choose to precisely identify > which file the test is used in case I have multiple test for the same > application > > This prefix can vary depending on your various input options or can be > simple 1, 2. etc.. apTvMosaicTest1.tif > > AFAIK, I think the main idea is to trace back to test name from filename. > > > If you could host the input andbaseline somewhere to download. Then I can > add them to otb-data and you can use it in cmakelists. > > Right now, hosting of baseline and input data for a new remote module is > not well defined in the guidelines > > > > > On Thu, Aug 13, 2015 at 5:43 PM, Rémi Cresson <[email protected]> wrote: > > Hi Rashad, thanks again. > Where can I find documentation about naming conventions of baselines > filename? > > 2015-08-13 15:30 GMT+02:00 Rashad M <[email protected]>: > > > > On Thu, Aug 13, 2015 at 1:01 PM, Rémi Cresson <[email protected]> wrote: > > I've commited the changes. > -fix doxygen in headers > -test now run using otb-data input (but validation data needs to exist > somewhere... I keep one test result in "test" directory) > I removed images from my git. However I guess ideal tests must be ran on > special data (I need partly overlapping images, better if they are RGB or > multispectral. I checked in otb-data but I didn't find this kind of data) > > > In that case, your images should be added to OTB-Data > > OTB-Data/Input > OTB-Data/Baselines/OTB/Images/ > > Note that in OTB-Data baselines filenames for the test have a naming > convention. > Have a at look here: > https://git.orfeo-toolbox.org/otb-data.git/tree/HEAD:/Baseline/OTB/Images > > > > > 2015-08-13 12:34 GMT+02:00 Rashad M <[email protected]>: > > > > On Thu, Aug 13, 2015 at 12:15 PM, Rémi Cresson <[email protected]> wrote: > > Thank you, I've modified the headers (It seems like I can add some latek?). > should I left the test validation data into the "test" directory? > > > you can test with some exisiting data on otb-data repo and remove images > from your git. This is unless your data is special for your module. > > Also fix the errors in argument names for test > https://github.com/remicres/otb-mosaic/blob/master/test/CMakeLists.txt#L5 > > > many thanks > > 2015-08-13 10:48 GMT+02:00 Rashad M <[email protected]>: > > you need add only to filters and not applications. > > see example, > https://github.com/jmichel-otb/GKSVM/blob/master/include/otbChangeProfileKernelFunctor.h#L44 > > > > On Thu, Aug 13, 2015 at 10:38 AM, Rémi Cresson <[email protected]> wrote: > > Thank you Rashad, > > I am trying to use otb baseline in the (fixed) new test. > About doxygen, I will look into existing otb code to mimic. Do you mean I > must add the \ingroup to each filters, app, or both? > > > > 2015-08-13 9:59 GMT+02:00 Rashad M <[email protected]>: > > > > On Wed, Aug 12, 2015 at 7:58 PM, Rémi Cresson <[email protected]> wrote: > > Hello Rashad, > > Thank you for testing it. > I made the changes you suggest, except I put sources in include folder > (instead of src). > > > yes that is correct. it was my bad mentioning src if you dont have .cxx in > library > > > I had to read the dashboard output, because it compiled fine on my system > without any error... > > > I have the new build without errors. But however tests are failing. But > that can be fixed easily. Have a look at - > http://dash.orfeo-toolbox.org/testDetails.php?test=32229576&build=195008 > > For doxygen, it is required to mention the ingroup in the header as > doxygen comments. > > > Dasboard submission: > http://dash.orfeo-toolbox.org/testDetails.php?test=32229575&build=195008 > > > > you have test images which is now in test folder. But usually OTB keeps > all baseline and example data in OTB-Data repository. > So if you could run the test on some images already existing in OTB-Data, > I think that would be nice. Also I am not sure about adding new baseline > for remote modules which are not official yet. > > OTB-Data -https://git.orfeo-toolbox.org/otb-data.git > > > Waiting for your feedback ! > > Rémi > > > 2015-08-12 17:15 GMT+02:00 Rashad M <[email protected]>: > > Hi, > > On Mon, Aug 10, 2015 at 6:56 PM, remicres <[email protected]> wrote: > > Hi, > > I've just commited a remote module on GitHub wich deals with image mosaics > generation (https://github.com/remicres/otb-mosaic.git). > Provided are mosaicing filters and one application. > All filters support streaming. The application performs the mosaic > generation of multiple images, whith some color/radiometric harmonization > features, and feathering features (Details are provided above*) > > I hope that you will try and enjoy it. Keep me updated about issues ! Feel > free to ask questions, if any. > > > I tried to setup nightly build for your remote module but didnt work. > > here is the dasboard output: > http://dash.orfeo-toolbox.org/buildSummary.php?buildid=194873 > > From first look, > > you have all code in app folder include .h and .hxx. > > but otb remote module needs: > > all library code in src/*.h *.txx ( .txx is because all other modules use > it that way. you need to confirm with someone else in the list) > > all application code in app/ > > Also please add a file like the below in your git repo. > > https://github.com/jmichel-otb/GKSVM/blob/master/GKSVM.remote.cmake > > > > Cheers, > > Rémi > > > > > > * The application: > > - From a given input images list, a mosaic is produced. The pipeline > supports streaming, so there is no restriction on images number or size. > - It implements a color harmonization method explained on our paper: > Cresson R., Saint-Geours N., "Natural Color Satellite Image Mosaicking > Using Quadratic Programming in Decorrelated Color Space"IEEE Journal of > Selected Topics in Applied Earth Observations and Remote Sensing > (Volume:PP > , Issue: 99) July 2015 > > <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7154397&filter%3DAND%28p_IS_Number%3A4609444%29>. > > In brief, it performs the global colorimetric harmonization of overlapping > images in natural colors (i.e. input images must have 3 bands, RGB). You > can set the application parameter "-harmo.method" to "rgb" to use this > feature. However, the global radiometric harmonization can also be > performed on each band individually by setting the application parameter > "-harmo.method" to "band" (it can be useful if the color space is not > truly > RGB like raw Spot6/7, or if you want to perform a kind of radiometric > equalized mosaic). Various statistical cost functions can be used (e.g. > rmse) to find a correction model (which is linear with zero-y intercept: > input images are scaled). We have developed a richer harmonization solver, > wich can deal with general linear correction models (i.e. scale, and shift > scale of images) but the maths tools brought by VNL were not sufficient, > and we had to make use of external libraries to make it work (OOQP, > QuadProg++). That is why we brought only simple zero-y intercept (i.e. > scale) correction model in this current module. In future release, I think > we should propose OOQP based (or QuadProg++ based) solver because it is > far > more robust than VNL routines (Sometimes VNL's routines throw unexpected > errors, obviously coming from numerical instabilities). Waiting what will > be the OTB framework for third parties... > - As the harmonization method rely of local image statistics, those > must be exempt from perturbations (e.g. clouds, ice, brutal landcover > change between two images, ...). That's why it is possible to input some > vector data to mask valid areas (need one vector data for one input image, > in the same order as appearing in input). > - It is possible to input some vector data for cutline (need one > vector data for one input image, in the same order as appearing in input). > - Another cool feature is the feathering/blending of input images, > which allows to produce seamless mosaics. The current limitation is that > we > use a distance map image for each input, computed by > itk::DanielssonDistanceMapImageFilter wich is not a streamable filter. > That's why the current process first generates all distance map images in > temporary .tif files, from resampled input images (the decimation factor > can be set using the "-alphamasks.spacing"). Then, the filters use these > previously computed distance map images to perform the feathering/blending > of the input images. At the moment, 2 feathering methods are implemented > (slim: blends the last image over earlier ones in areas of overlap, on a > given transition distance / large: blends all images on largests possible > overlapping areas) > > We tested the application successfully on big images collections: > RapidEye, France coverage from 2011 (~130 images), Spot6/7, France coverage > from 2014 (~190 images), both with a reasonable processing time. Processing > time is o(n) for both mosaic generation and statistics computation > (n=number of input images pixels). Harmonization problem is solved in o(m) > with m=number of input images (about some milliseconds for a hundred of > input images). > > The filters: > > - otbStreamingMosaicFilterBase: is the base class of all mosaicing > filters > - otbStreamingSimpleMosaicFilter: inherits > otbStreamingMosaicFilterBase, performs simple mosaics with a simple > compositing technique which copies the last image over earlier ones in > areas of overlap > - otbStreamingStatisticsMosaicFilter: inherits > otbStreamingMosaicFilterBase, computes statistics of the input images in > each overlapping areas (e.g. mean of image i in overlap j, for all i and j) > - otbStreamingMosaicFilterWithBlendingBase: inherits > otbStreamingMosaicFilterBase, is the base class for all mosaicing filters > which use a distance map image (feathering filters...) > - otbStreamingFeatherMosaicFilter: inherits > otbStreamingMosaicFilterWithBlendingBase, generates a mosaic with blends > the last image over earlier ones in areas of overlap, on a given > transition > distance > - otbStreamingLargeFeatherMosaicFilter: inherits > otbStreamingMosaicFilterWithBlendingBase, blends all images on largests > possible overlapping areas > - otbStreamingMultibandFeatherMosaicFilter: inherits > otbStreamingFeatherMosaicFilter, experimental. Multiband blending of input > image using the laplacian (see Burt & Adelson "A multiresolution spline > with application to image mosaics"). Could use GPU support for gaussian > filtering. One need to fix some issues related to side effects (around no > data pixels of images). > - otbSummingFilter: utility filter which sums input images. > - otbQuadraticallyConstrainedSimpleSolver: is the solver used for > images color/radiometric harmonization. Works only with zero-y intercept > correction models (as explained before). > > We try to make sense of this multilevel inheritance, but it might be > perfectible ! > A possible optimization might be to process every threadedRegion by > subdividing it in multiple smaller regions, in order to loop only on > relevant images: an actual drawback is where the threadedRegion is large, > a lot of input images have to be checked even if they are out of the > region. Another one might be to pre-compute areas where interpolators can > work, instead of checking every processed pixel if the current point is > inside the buffer. > On excellent upgrade would be to strengthen the architecture, and > implements those optimizations in a general way (currently, we have to do > it for each filter... that is why I think this could be better built) > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Regards, > Rashad > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "otb-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/otb-users/tXsf0YvarIo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Regards, > Rashad > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "otb-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/otb-users/tXsf0YvarIo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Regards, > Rashad > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "otb-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/otb-users/tXsf0YvarIo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Regards, > Rashad > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "otb-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/otb-users/tXsf0YvarIo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Regards, > Rashad > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "otb-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/otb-users/tXsf0YvarIo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Regards, > Rashad > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "otb-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/otb-users/tXsf0YvarIo/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > > > -- > -- > Check the OTB FAQ at > http://www.orfeo-toolbox.org/FAQ.html > > You received this message because you are subscribed to the Google > Groups "otb-users" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/otb-users?hl=en > --- > You received this message because you are subscribed to the Google Groups > "otb-users" group. > To unsubscribe from this group and stop receiving emails from > > ... -- -- Check the OTB FAQ at http://www.orfeo-toolbox.org/FAQ.html You received this message because you are subscribed to the Google Groups "otb-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/otb-users?hl=en --- You received this message because you are subscribed to the Google Groups "otb-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
