EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
<== Date ==> <== Thread ==>

Subject: Re: ImageJ AD Plugins and PVXS
From: Joshua Einstein-Curtis via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 3 Jun 2024 09:26:58 -0500
Thanks all -- much clarification.

For reference and archiving answers on the chain, here is a link to the NTNDArray "dimensions" section that doesn't say anything about dimension ordering, and is the proper link: https://docs.epics-controls.org/en/latest/pv-access/Normative-Types-Specification.html#dimensions.

I'd say this should probably be clarified in the next documentation workshop somewhere as convention, as ordering in matrix-handling libraries seems to be non-existent. I'm including OpenCV and PIL in this with their different RGB and BGR defaults. We're using Eigen for some manipulations, which supports both row- and column-major data storage, but defaults to column-major. Having it based on codec definitely makes sense for images, though.

Appreciate the quick replies,
Josh EC



On Fri, May 31, 2024 at 10:21 PM Mark Rivers <rivers at cars.uchicago.edu> wrote:
Hi Josh,

The text you quote is from the description of an NTMatrix. That is not the normative type used by the areaDetector NDPluginPva plugin or the ImageJ viewer.  They use the NTNDArray normative type, which can have any number of dimensions. AD uses the normal convention for image data which has the first dimension being the number of columns and the second being the number of rows, e.g. a 1920x1200 monitor is [columns, rows].

Mark

Sent from my iPhone

On May 31, 2024, at 4:36 PM, Joshua Einstein-Curtis via Tech-talk <tech-talk at aps.anl.gov> wrote:


Hi all,

We're doing some work using PVXS and debugging using the ImageJ AD plugins, and I'm finding something that just doesn't make sense to me. Here's the run down:

For each pvxs::Value, we have two dimensions, as these are array values. Based on the specification in the documentation (https://docs.epics-controls.org/en/latest/pv-access/Normative-Types-Specification.html) I see:

" A dim] of 2 elements describes a matrix, where the first element of dim gives the number of rows, and the second element of dim gives the number columns."

When I set my array up and then send the image to the ImageJ NTNDA_Viewer plugin, I find that dims[0] is the x-axis, while dims[1] is the y-axis, which is the opposite of what I'd expect given the normative type specification.

Just curious if anyone else has run into this, or if I'm missing something obvious.

Josh EC

RadiaSoft



Replies:
Re: ImageJ AD Plugins and PVXS Joshua Einstein-Curtis via Tech-talk
References:
ImageJ AD Plugins and PVXS Joshua Einstein-Curtis via Tech-talk
Re: ImageJ AD Plugins and PVXS Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: OMS MAXnet Ralph Lange via Tech-talk
Next: Re: ImageJ AD Plugins and PVXS Joshua Einstein-Curtis via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
Navigate by Thread:
Prev: Re: ImageJ AD Plugins and PVXS Mark Rivers via Tech-talk
Next: Re: ImageJ AD Plugins and PVXS Joshua Einstein-Curtis via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
ANJ, 03 Jun 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·