Posted by
Wayne Rasband-2 on
URL: http://imagej.273.s1.nabble.com/some-little-changes-to-propose-to-ImageJ-tp5019760p5019768.html
> On Dec 13, 2017, at 10:36 AM, François GANNIER (PCCV) <
[hidden email]> wrote:
>
> Dear all (probably mostly Wayne)
>
> I have some little changes to propose to imageJ with the hope this can be added to the next version of ImageJ.
>
> 1 - getDimensionsFromName function in ImportDialog.java
> I adapted the name of my images to use this function, but this limits at 3 numbers only in the filename.
> With this rewrite, you get the same functionnalities even if you have more than 3 numbers
This change is in the latest ImageJ daily build (1.51t14).
> private void getDimensionsFromName(String name) {
> if (name==null) return;
> int lastUnderscore = name.lastIndexOf("_");
> String name2 = name;
> if (lastUnderscore>=0)
> name2 = name.substring(lastUnderscore);
> char[] chars = new char[name2.length()];
> for (int i=0; i<name2.length(); i++) // change non-digits to spaces
> chars[i] = Character.isDigit(name2.charAt(i))?name2.charAt(i):' ';
> name2 = new String(chars);
> String[] numbers = Tools.split(name2);
> int n = numbers.length;
> if (n<2) return;
> int w = (int)Tools.parseDouble(numbers[0],0);
> if (w<10) return;
> int h = (int)Tools.parseDouble(numbers[1],0);
> if (h<10) return;
> width = w;
> height = h;
> nImages = 1;
> if (n>2) {
> int d = (int)Tools.parseDouble(numbers[2],0);
> if (d>0)
> nImages = d;
> }
> guessFormat(directory, name);
> }
>
> 2 - getLabel in Plot.java
> I change this function to be public so I can access to label axis and units from Plot window directly in my plugin.
>
> public String getLabel(char c)
This method is public in the latest daily build.
> 3 - addToLists in Plot.java
> this changes let me show/import data with axis label and eventually units with "List" button or "Copy All Ddata".
> (I changed only the first two headers)
In the daily build, the x and y-axis labels are used as the first two column headings in the table created by the plot window "List” command, but only when these labels start and end with a space character.
-wayne
> void addToLists(ArrayList<String> headings, ArrayList<float[]>data, PlotObject plotObject,
> int dataSetNumber, boolean writeX, boolean writeY, boolean multipleSets) {
> if (writeX) {
> String label = plotObject.type == PlotObject.ARROWS ? "XStart" : "X";
> if (multipleSets) label += dataSetNumber;
> if (dataSetNumber == 0) {
> String plotXLabel = getLabel('x');
> if (plotXLabel != null)
> label = plotXLabel;
> }
> headings.add(label);
> data.add(plotObject.xValues);
> }
> if (writeY) {
> String label = plotObject.type == PlotObject.ARROWS ? "YStart" : "Y";
> if (multipleSets) label += dataSetNumber;
> if (dataSetNumber == 0) {
> String plotYLabel = getLabel('y');
> if (plotYLabel != null)
> label = plotYLabel;
> }
> headings.add(label);
> data.add(plotObject.yValues);
> }
> if (plotObject.xEValues != null) {
> String label = plotObject.type == PlotObject.ARROWS ? "XEnd" : "XERR";
> if (multipleSets) label += dataSetNumber;
> headings.add(label);
> data.add(plotObject.xEValues);
> }
> if (plotObject.yEValues != null) {
> String label = plotObject.type == PlotObject.ARROWS ? "YEnd" : "ERR";
> if (multipleSets) label += dataSetNumber;
> headings.add(label);
> data.add(plotObject.yEValues);
> }
> }
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html