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 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.

Reply via email to