MCPcopy Create free account
hub / github.com/AstroImageJ/astroimagej / getOrthoLine

Method getOrthoLine

ij/src/main/java/ij/plugin/Slicer.java:637–662  ·  view source on GitHub ↗
(ImageProcessor ip, int x1, int y1, int x2, int y2, float[] data)

Source from the content-addressed store, hash-verified

635 }
636
637 private float[] getOrthoLine(ImageProcessor ip, int x1, int y1, int x2, int y2, float[] data) {
638 int w = ip.getWidth();
639 int h = ip.getHeight();
640 boolean checkBounds = x1<0||x1>w||y1<0||y1>h||x2<0||x2>w||y2<0||y2>h;
641 int dx = x2-x1;
642 int dy = y2-y1;
643 int n = Math.max(Math.abs(dx), Math.abs(dy));
644 if (data==null)
645 data = new float[n];
646 int xinc = dx/n;
647 int yinc = dy/n;
648 int width = ip.getWidth();
649 int height = ip.getHeight();
650 for (int i=0; i<n; i++) {
651 if (rgb) {
652 int rgbPixel = ((ColorProcessor)ip).getPixel(x1, y1);
653 data[i] = Float.intBitsToFloat(rgbPixel&0xffffff);
654 } else if (checkBounds)
655 data[i] = x1>0&&x1<width&&y1>0&&y1<height?ip.getf(x1,y1):0;
656 else
657 data[i] = ip.getf(x1,y1);
658 x1 += xinc;
659 y1 += yinc;
660 }
661 return data;
662 }
663
664 void drawLine(double x1, double y1, double x2, double y2, ImagePlus imp) {
665 ImageCanvas ic = imp.getCanvas();

Callers 1

getSliceMethod · 0.95

Calls 6

getWidthMethod · 0.45
getHeightMethod · 0.45
maxMethod · 0.45
absMethod · 0.45
getPixelMethod · 0.45
getfMethod · 0.45

Tested by

no test coverage detected