Discussion:
[Geotools-devel] Hue Rotate for Rasters
John Schulz
2017-07-12 18:29:26 UTC
Permalink
Greeting Ian,

I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.

I look forward to hearing back on your thoughts.

Cheers,

John
Ian Turton
2017-07-14 07:47:28 UTC
Permalink
Hi John,

I'm not sure I'm necessarily the right person to ask about this as all I
did was expose the new methods to the SLD so that people could make use of
the new functionality. The actual code to make changes to the raster was
writen long before I was there -
https://github.com/geotools/geotools/blame/master/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java

Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.

Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
Jody Garnett
2017-07-14 14:17:13 UTC
Permalink
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?

The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.

--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all I
did was expose the new methods to the SLD so that people could make use of
the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/
org/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
John Schulz
2017-07-14 16:04:38 UTC
Permalink
I looking through what additional functionality I am looking for, I think
it might be appropriate to add in a ColorEnhancement element of sorts, to
include algorithms for HueRotate and Saturation. I seems like a lot of my
work would overlap with what is already in ContrastEnhancement and not sure
how the additional efforts would payout.

@Jody - you did mention that it might be better to implement in a similar
fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?

John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all I
did was expose the new methods to the SLD so that people could make use of
the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
John Schulz
2017-07-14 16:51:07 UTC
Permalink
I meant to say:

"which would entail a new element in the *RasterSymbolizer*"
Post by John Schulz
I looking through what additional functionality I am looking for, I think
it might be appropriate to add in a ColorEnhancement element of sorts, to
include algorithms for HueRotate and Saturation. I seems like a lot of my
work would overlap with what is already in ContrastEnhancement and not sure
how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a similar
fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all I
did was expose the new methods to the SLD so that people could make use of
the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Jody Garnett
2017-07-14 17:14:40 UTC
Permalink
ShadedRelief was the only other thing I could think of, in SLD spec
directly.

We also have our geoserver specific extension for geometry transformations.
We have to ask someone here if that can be used to introduce the colorSpace
operation <http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551>
to HSV and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for the
color rotation in an efficient manner for rendering.

--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I think
it might be appropriate to add in a ColorEnhancement element of sorts, to
include algorithms for HueRotate and Saturation. I seems like a lot of my
work would overlap with what is already in ContrastEnhancement and not sure
how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a similar
fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all I
did was expose the new methods to the SLD so that people could make use of
the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Ian Turton
2017-07-14 19:25:19 UTC
Permalink
Could you please expand on what hue rotate does? I'm not sure if I
understand it well enough to decide if it is an image operation or a
geometry operation.

Ian

On 14 Jul 2017 18:15, "Jody Garnett" <***@gmail.com> wrote:

ShadedRelief was the only other thing I could think of, in SLD spec
directly.

We also have our geoserver specific extension for geometry transformations.
We have to ask someone here if that can be used to introduce the colorSpace
operation <http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551>
to HSV and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for the
color rotation in an efficient manner for rendering.

--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I think
it might be appropriate to add in a ColorEnhancement element of sorts, to
include algorithms for HueRotate and Saturation. I seems like a lot of my
work would overlap with what is already in ContrastEnhancement and not sure
how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a similar
fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all I
did was expose the new methods to the SLD so that people could make use of
the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Andrea Aime
2017-07-14 20:18:32 UTC
Permalink
Ian,
Jody is calling them geometry transformations, but he really means
rendering transformations (geometry transformation
is the act of applying a function inside the geometry tag for the current
vector feature, has nothing to do with rasters):

http://docs.geoserver.org/stable/en/user/styling/sld/extensions/geometry-transformations.html
http://docs.geoserver.org/stable/en/user/styling/sld/extensions/rendering-transform.html

Cheers
Andrea
Post by Ian Turton
Could you please expand on what hue rotate does? I'm not sure if I
understand it well enough to decide if it is an image operation or a
geometry operation.
Ian
ShadedRelief was the only other thing I could think of, in SLD spec
directly.
We also have our geoserver specific extension for geometry
transformations. We have to ask someone here if that can be used to
introduce the colorSpace operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551> to HSV
and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for the
color rotation in an efficient manner for rendering.
--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I
think it might be appropriate to add in a ColorEnhancement element of
sorts, to include algorithms for HueRotate and Saturation. I seems like a
lot of my work would overlap with what is already in ContrastEnhancement
and not sure how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a similar
fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all
I did was expose the new methods to the SLD so that people could make use
of the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
--
Regards,

Andrea Aime

==
GeoServer Professional Services from the experts! Visit http://goo.gl/it488V
for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo Ú consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
Jody Garnett
2017-07-14 20:59:14 UTC
Permalink
Thanks for the correction Andrea, this would be a raster-to-raster
rendering transform, or a new normalization algorithm.

Ian - Hue rotate is used when an image has been produced with complementary
colours (in a colour wheel sense). If you can image spinning the color
wheel while leaving the everything in the same relative position. It is
used in video games for example to reuse graphic assets. Torben had a good
reference if we ask him.




--
Jody Garnett
Post by Andrea Aime
Ian,
Jody is calling them geometry transformations, but he really means
rendering transformations (geometry transformation
is the act of applying a function inside the geometry tag for the current
http://docs.geoserver.org/stable/en/user/styling/sld/extensions/geometry-
transformations.html
http://docs.geoserver.org/stable/en/user/styling/sld/extensions/rendering-
transform.html
Cheers
Andrea
Post by Ian Turton
Could you please expand on what hue rotate does? I'm not sure if I
understand it well enough to decide if it is an image operation or a
geometry operation.
Ian
ShadedRelief was the only other thing I could think of, in SLD spec
directly.
We also have our geoserver specific extension for geometry
transformations. We have to ask someone here if that can be used to
introduce the colorSpace operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551> to HSV
and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for the
color rotation in an efficient manner for rendering.
--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I
think it might be appropriate to add in a ColorEnhancement element of
sorts, to include algorithms for HueRotate and Saturation. I seems like a
lot of my work would overlap with what is already in ContrastEnhancement
and not sure how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a
similar fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as all
I did was expose the new methods to the SLD so that people could make use
of the new functionality. The actual code to make changes to the raster was
writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on this
list. Though I warn you a lot of us are travelling this week for FOSS4GE
and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
--
Regards,
Andrea Aime
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313 <+39%200584%20962313>
fax: +39 0584 1660272 <+39%200584%20166%200272>
mob: +39 339 8844549 <+39%20339%20884%204549>
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo Ú consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
Torben Barsballe
2017-07-14 22:49:54 UTC
Permalink
Hi Ian,

Here are a couple of references that deal with implementing Hue-Rotate:

https://beesbuzz.biz/code/hsv_color_transforms.php
http://crawlingrobotfortress.blogspot.ca/2013/06/optimizing-hue-rotation-operator.html

The basic idea is you have an image in the HSV
<https://en.wikipedia.org/wiki/HSL_and_HSV> colour space, and you change
the increment the Hue of each pixel by some amount. This has the effect of
"rotating" the hue of the image as a whole.

It is a fairly common transform in most graphical programs (like GIMP or
Photoshop).

Torben
Post by Jody Garnett
Thanks for the correction Andrea, this would be a raster-to-raster
rendering transform, or a new normalization algorithm.
Ian - Hue rotate is used when an image has been produced with
complementary colours (in a colour wheel sense). If you can image spinning
the color wheel while leaving the everything in the same relative position.
It is used in video games for example to reuse graphic assets. Torben had a
good reference if we ask him.
--
Jody Garnett
Post by Andrea Aime
Ian,
Jody is calling them geometry transformations, but he really means
rendering transformations (geometry transformation
is the act of applying a function inside the geometry tag for the current
http://docs.geoserver.org/stable/en/user/styling/sld/extensi
ons/geometry-transformations.html
http://docs.geoserver.org/stable/en/user/styling/sld/extensi
ons/rendering-transform.html
Cheers
Andrea
Post by Ian Turton
Could you please expand on what hue rotate does? I'm not sure if I
understand it well enough to decide if it is an image operation or a
geometry operation.
Ian
ShadedRelief was the only other thing I could think of, in SLD spec
directly.
We also have our geoserver specific extension for geometry
transformations. We have to ask someone here if that can be used to
introduce the colorSpace operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551> to HSV
and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for
the color rotation in an efficient manner for rendering.
--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I
think it might be appropriate to add in a ColorEnhancement element of
sorts, to include algorithms for HueRotate and Saturation. I seems like a
lot of my work would overlap with what is already in ContrastEnhancement
and not sure how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a
similar fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as
all I did was expose the new methods to the SLD so that people could make
use of the new functionality. The actual code to make changes to the raster
was writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancementNode.java
Hope that helps, if not feel free to continue to ask questions on
this list. Though I warn you a lot of us are travelling this week for
FOSS4GE and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed in
Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
--
Regards,
Andrea Aime
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313 <+39%200584%20962313>
fax: +39 0584 1660272 <+39%200584%20166%200272>
mob: +39 339 8844549 <+39%20339%20884%204549>
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo Ú consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely
for the attention and use of the named addressee(s) and may be confidential
or proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
John Schulz
2017-07-19 16:00:20 UTC
Permalink
To all,

I am wanting to move forward with creating a proposal for an implementation
to extend functionality for HueRotate and Saturation for rasters. As
stated by Torben the basic idea would be to take an image and convert it to
the HSV or HSL <https://en.wikipedia.org/wiki/HSL_and_HSV> color space and
rotate the hue of each pixel by the same degree across the entire image,
keeping the relative appearance in tact. A good example can be found here:

http://crawlingrobotfortress.blogspot.ca/2013/06/optimizing-hue-rotation-operator.html

In this discussion I believe there are two feasible approaches and was
looking for any additional input in deciding the best way to move forward
with the proposal.

1. Create a new rendering transformation
<http://docs.geoserver.org/stable/en/user/styling/sld/extensions/rendering-transform.html>
option. This approach would be considered a raster-to-raster
transformation and would require creating and executing a new process and
operation/function and extending its use to the <Transformation> SLD.

2. Create a new normalization process for colors similar to the Contrast
Enhancement
<http://docs.geoserver.org/latest/en/user/styling/sld/reference/rastersymbolizer.html#contrastenhancement>
normalization, extending the RasterSymbolizer elements. I feel that this
option could be implemented in a couple of different ways as well.
a. Extend the algorithm vendor option to include HueRotate and
Saturation algorithms for Normalize within Contrast Enhancement.
b. Create a new SLD element "ColorEnhancement" to follow in a similar
fashion as Contrast Enhancement and the Normalize, but specifically
altering the colorspace.

Any additional thoughts would be appreciated,

Thanks,

John

On Fri, Jul 14, 2017 at 5:49 PM, Torben Barsballe <
Post by Torben Barsballe
Hi Ian,
https://beesbuzz.biz/code/hsv_color_transforms.php
http://crawlingrobotfortress.blogspot.ca/2013/06/optimizing-hue-rotation-
operator.html
The basic idea is you have an image in the HSV
<https://en.wikipedia.org/wiki/HSL_and_HSV> colour space, and you change
the increment the Hue of each pixel by some amount. This has the effect of
"rotating" the hue of the image as a whole.
It is a fairly common transform in most graphical programs (like GIMP or
Photoshop).
Torben
Post by Jody Garnett
Thanks for the correction Andrea, this would be a raster-to-raster
rendering transform, or a new normalization algorithm.
Ian - Hue rotate is used when an image has been produced with
complementary colours (in a colour wheel sense). If you can image spinning
the color wheel while leaving the everything in the same relative position.
It is used in video games for example to reuse graphic assets. Torben had a
good reference if we ask him.
--
Jody Garnett
Post by Andrea Aime
Ian,
Jody is calling them geometry transformations, but he really means
rendering transformations (geometry transformation
is the act of applying a function inside the geometry tag for the
http://docs.geoserver.org/stable/en/user/styling/sld/extensi
ons/geometry-transformations.html
http://docs.geoserver.org/stable/en/user/styling/sld/extensi
ons/rendering-transform.html
Cheers
Andrea
Post by Ian Turton
Could you please expand on what hue rotate does? I'm not sure if I
understand it well enough to decide if it is an image operation or a
geometry operation.
Ian
ShadedRelief was the only other thing I could think of, in SLD spec
directly.
We also have our geoserver specific extension for geometry
transformations. We have to ask someone here if that can be used to
introduce the colorSpace operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551> to
HSV and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for
the color rotation in an efficient manner for rendering.
--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I
think it might be appropriate to add in a ColorEnhancement element of
sorts, to include algorithms for HueRotate and Saturation. I seems like a
lot of my work would overlap with what is already in ContrastEnhancement
and not sure how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a
similar fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as
all I did was expose the new methods to the SLD so that people could make
use of the new functionality. The actual code to make changes to the raster
was writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancement
Node.java
Hope that helps, if not feel free to continue to ask questions on
this list. Though I warn you a lot of us are travelling this week for
FOSS4GE and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed
in Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
--
Regards,
Andrea Aime
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313 <+39%200584%20962313>
fax: +39 0584 1660272 <+39%200584%20166%200272>
mob: +39 339 8844549 <+39%20339%20884%204549>
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo Ú consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely
for the attention and use of the named addressee(s) and may be confidential
or proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Ian Turton
2017-07-20 07:06:45 UTC
Permalink
I think that how you expose this to the user depends on what you or they
think the process is going to be used for.

I lean towards the rendering transformation as I see it as a process to
transform a raster into another one rather than an enhancement of the
raster. But I'm not a raster expert and I've never come across this type of
transformation before.

Ian

On 19 Jul 2017 18:00, "John Schulz" <***@boundlessgeo.com> wrote:

To all,

I am wanting to move forward with creating a proposal for an implementation
to extend functionality for HueRotate and Saturation for rasters. As
stated by Torben the basic idea would be to take an image and convert it to
the HSV or HSL <https://en.wikipedia.org/wiki/HSL_and_HSV> color space and
rotate the hue of each pixel by the same degree across the entire image,
keeping the relative appearance in tact. A good example can be found here:

http://crawlingrobotfortress.blogspot.ca/2013/06/optimizing-hue-rotation-
operator.html

In this discussion I believe there are two feasible approaches and was
looking for any additional input in deciding the best way to move forward
with the proposal.

1. Create a new rendering transformation
<http://docs.geoserver.org/stable/en/user/styling/sld/extensions/rendering-transform.html>
option. This approach would be considered a raster-to-raster
transformation and would require creating and executing a new process and
operation/function and extending its use to the <Transformation> SLD.

2. Create a new normalization process for colors similar to the Contrast
Enhancement
<http://docs.geoserver.org/latest/en/user/styling/sld/reference/rastersymbolizer.html#contrastenhancement>
normalization, extending the RasterSymbolizer elements. I feel that this
option could be implemented in a couple of different ways as well.
a. Extend the algorithm vendor option to include HueRotate and
Saturation algorithms for Normalize within Contrast Enhancement.
b. Create a new SLD element "ColorEnhancement" to follow in a similar
fashion as Contrast Enhancement and the Normalize, but specifically
altering the colorspace.

Any additional thoughts would be appreciated,

Thanks,

John

On Fri, Jul 14, 2017 at 5:49 PM, Torben Barsballe <
Post by Torben Barsballe
Hi Ian,
https://beesbuzz.biz/code/hsv_color_transforms.php
http://crawlingrobotfortress.blogspot.ca/2013/06/optimizing-
hue-rotation-operator.html
The basic idea is you have an image in the HSV
<https://en.wikipedia.org/wiki/HSL_and_HSV> colour space, and you change
the increment the Hue of each pixel by some amount. This has the effect of
"rotating" the hue of the image as a whole.
It is a fairly common transform in most graphical programs (like GIMP or
Photoshop).
Torben
Post by Jody Garnett
Thanks for the correction Andrea, this would be a raster-to-raster
rendering transform, or a new normalization algorithm.
Ian - Hue rotate is used when an image has been produced with
complementary colours (in a colour wheel sense). If you can image spinning
the color wheel while leaving the everything in the same relative position.
It is used in video games for example to reuse graphic assets. Torben had a
good reference if we ask him.
--
Jody Garnett
Post by Andrea Aime
Ian,
Jody is calling them geometry transformations, but he really means
rendering transformations (geometry transformation
is the act of applying a function inside the geometry tag for the
http://docs.geoserver.org/stable/en/user/styling/sld/extensi
ons/geometry-transformations.html
http://docs.geoserver.org/stable/en/user/styling/sld/extensi
ons/rendering-transform.html
Cheers
Andrea
Post by Ian Turton
Could you please expand on what hue rotate does? I'm not sure if I
understand it well enough to decide if it is an image operation or a
geometry operation.
Ian
ShadedRelief was the only other thing I could think of, in SLD spec
directly.
We also have our geoserver specific extension for geometry
transformations. We have to ask someone here if that can be used to
introduce the colorSpace operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51551> to
HSV and then a bandcombine operation
<http://iihm.imag.fr/Docs/java/jai1_0guide/Color.doc.html#51591> for
the color rotation in an efficient manner for rendering.
--
Jody Garnett
Post by John Schulz
I looking through what additional functionality I am looking for, I
think it might be appropriate to add in a ColorEnhancement element of
sorts, to include algorithms for HueRotate and Saturation. I seems like a
lot of my work would overlap with what is already in ContrastEnhancement
and not sure how the additional efforts would payout.
@Jody - you did mention that it might be better to implement in a
similar fashion of ShadedRelief, which would entail a new element in the
RasterLayer anyway - thoughts?
John Schulz
Post by Jody Garnett
Ian with respect to exposing new methods to the SLD, do you think Hue
Rotate could be added as a new Color Normalization algorithm?
The only other example I could think of would be as a geometry
transformation, both options kind of make sense so I was not sure what to
recommend.
--
Jody Garnett
Post by Ian Turton
Hi John,
I'm not sure I'm necessarily the right person to ask about this as
all I did was expose the new methods to the SLD so that people could make
use of the new functionality. The actual code to make changes to the raster
was writen long before I was there - https://github.com/geotools/
geotools/blame/master/modules/library/render/src/main/java/o
rg/geotools/renderer/lite/gridcoverage2d/ContrastEnhancement
Node.java
Hope that helps, if not feel free to continue to ask questions on
this list. Though I warn you a lot of us are travelling this week for
FOSS4GE and then building up to FOSS4G so there may be delays in responding.
Ian
Post by John Schulz
Greeting Ian,
I'm working on creating a hue rotate option for rasters processed
in Geotools and with speaking with my team have come across your work with
ContrastEnhancement and was hoping to get some insight into working with
the normalization process and how it might be used in my endeavors.
I look forward to hearing back on your thoughts.
Cheers,
John
--
Ian Turton
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
--
Regards,
Andrea Aime
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313 <+39%200584%20962313>
fax: +39 0584 1660272 <+39%200584%20166%200272>
mob: +39 339 8844549 <+39%20339%20884%204549>
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo Ú consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely
for the attention and use of the named addressee(s) and may be confidential
or proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
GeoTools-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/geotools-devel
Torben Barsballe
2017-07-20 17:10:31 UTC
Permalink
Post by Ian Turton
I think that how you expose this to the user depends on what you or they
think the process is going to be used for.
I lean towards the rendering transformation as I see it as a process to
transform a raster into another one rather than an enhancement of the
raster. But I'm not a raster expert and I've never come across this type of
transformation before.
To provide a bit of an alternate viewpoint, in the places I have seen
hue-rotate used it has been the same type of operation as
brightness/contrast or changing the saturation. This has generally not been
in a GeoSpatial context however, just general image transformations.

Given that we are using a ContrastEnhancement for brightness / contrast, I
could completely understand using a similar Color Enhancement for hue
rotate.

That said, I'm sure a rendering transform would be fine too.

Torben

Loading...