Startup
This commit is contained in:
@@ -34,11 +34,8 @@ import ch.psi.pshell.imaging.Overlay;
|
||||
import ch.psi.pshell.imaging.Overlays;
|
||||
import ch.psi.pshell.imaging.Overlays.Text;
|
||||
import ch.psi.pshell.imaging.Pen;
|
||||
import static ch.psi.pshell.imaging.Renderer.PEN_ERROR_TEXT;
|
||||
import static ch.psi.pshell.imaging.RendererMenu.PEN_MARKER;
|
||||
import ch.psi.pshell.imaging.RendererMode;
|
||||
import ch.psi.pshell.imaging.Source;
|
||||
import ch.psi.pshell.imaging.Utils;
|
||||
import ch.psi.pshell.scripting.InterpreterResult;
|
||||
import ch.psi.pshell.scripting.ScriptManager;
|
||||
import ch.psi.utils.Arr;
|
||||
@@ -53,7 +50,6 @@ import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Point;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.DataBufferByte;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
@@ -63,6 +59,7 @@ import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.apache.commons.math3.analysis.function.Gaussian;
|
||||
import org.apache.commons.math3.fitting.GaussianCurveFitter;
|
||||
import org.apache.commons.math3.fitting.WeightedObservedPoint;
|
||||
@@ -93,6 +90,8 @@ public class ScreenPanel extends Panel {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
renderer.setProfileNormalized(true);
|
||||
renderer.setShowProfileLimits(true);
|
||||
showFit = buttonFit.isSelected();
|
||||
}
|
||||
|
||||
@@ -159,16 +158,15 @@ public class ScreenPanel extends Panel {
|
||||
comboCameras.setSelectedItem(-1);
|
||||
if (model.getSize() > 0) {
|
||||
try {
|
||||
//setCamera((String)comboCameras.getSelectedItem());
|
||||
if (App.hasArgument("cam")) {
|
||||
comboCameras.setSelectedItem(App.getArgumentValue("cam"));
|
||||
comboCameras.setSelectedItem(App.getArgumentValue("cam"));
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
startTimer(1000);
|
||||
startTimer(1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -353,13 +351,6 @@ public class ScreenPanel extends Panel {
|
||||
camera.getConfig().spatialCalScaleX = 1.0;
|
||||
camera.getConfig().spatialCalScaleY = 1.0;
|
||||
}
|
||||
/*
|
||||
double[] origin = ((Camtool)camera).origin.read();
|
||||
if (origin.length>=2){
|
||||
camera.getConfig().spatialCalOffsetX = origin[0];
|
||||
camera.getConfig().spatialCalOffsetY = origin[1];
|
||||
}
|
||||
*/
|
||||
}
|
||||
buttonReticle.setEnabled(camera.getConfig().isCalibrated());
|
||||
buttonGrabBackground.setEnabled(camera instanceof Camtool);
|
||||
@@ -373,10 +364,22 @@ public class ScreenPanel extends Panel {
|
||||
renderer.setDevice(camera);
|
||||
renderer.setAutoScroll(true);
|
||||
renderer.setMarker(marker);
|
||||
|
||||
firstImage = true;
|
||||
|
||||
camera.addListener(new ImageListener() {
|
||||
@Override
|
||||
public void onImage(Object o, BufferedImage bi, Data data) {
|
||||
if (firstImage && (bi!=null)){
|
||||
if ((renderer.getMode()==RendererMode.Zoom) || (renderer.getMode()==RendererMode.Fixed)){
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
centralizeRenderer();
|
||||
}
|
||||
});
|
||||
}
|
||||
firstImage = false;
|
||||
}
|
||||
if ((bi == null) || (!showFit)) {
|
||||
renderer.removeOverlays(fitOv);
|
||||
fitOv = null;
|
||||
@@ -396,7 +399,8 @@ public class ScreenPanel extends Panel {
|
||||
} catch (Exception ex) {
|
||||
if (renderer.getDevice() == null) {
|
||||
renderer.setZoom(1.0);
|
||||
renderer.addOverlay(new Text(PEN_ERROR_TEXT, ex.toString(), new Font("Verdana", Font.PLAIN, 12), new Point(20, 20)));
|
||||
renderer.setMode(RendererMode.Zoom);
|
||||
renderer.addOverlay(new Text(renderer.getPenErrorText(), ex.toString(), new Font("Verdana", Font.PLAIN, 12), new Point(20, 20)));
|
||||
}
|
||||
} finally {
|
||||
checkReticle();
|
||||
@@ -440,6 +444,8 @@ public class ScreenPanel extends Panel {
|
||||
valueFilter.setDevice(filter);
|
||||
|
||||
}
|
||||
|
||||
volatile Boolean firstImage;
|
||||
|
||||
void checkReticle() {
|
||||
if ((renderer.getDevice() != null) && (camera != null) && (camera.getConfig().isCalibrated()) && buttonReticle.isSelected()) {
|
||||
@@ -453,6 +459,21 @@ public class ScreenPanel extends Panel {
|
||||
renderer.refresh();
|
||||
}
|
||||
|
||||
void checkMarker() {
|
||||
if (camera != null) {
|
||||
if (buttonMarker.isSelected()) {
|
||||
Dimension d = renderer.getImageSize();
|
||||
Point p = (d == null) ? new Point(renderer.getWidth() / 2, renderer.getHeight() / 2) : new Point(d.width / 2, d.height / 2);
|
||||
Overlay ov = null;
|
||||
marker = new Overlays.Crosshairs(renderer.getPenMarker(), p, new Dimension(100, 100));
|
||||
marker.setMovable(true);
|
||||
} else {
|
||||
marker = null;
|
||||
}
|
||||
renderer.setMarker(marker);
|
||||
}
|
||||
}
|
||||
|
||||
void updateZoom() {
|
||||
try {
|
||||
buttonZoomStretch.setSelected(renderer.getMode() == RendererMode.Stretch);
|
||||
@@ -466,6 +487,8 @@ public class ScreenPanel extends Panel {
|
||||
buttonZoom05.setSelected(true);
|
||||
} else if (renderer.getZoom() == 0.25) {
|
||||
buttonZoom025.setSelected(true);
|
||||
} else if (renderer.getZoom() == 2.0) {
|
||||
buttonZoom2.setSelected(true);
|
||||
} else {
|
||||
buttonGroup1.clearSelection();
|
||||
}
|
||||
@@ -548,7 +571,7 @@ public class ScreenPanel extends Panel {
|
||||
Double ySigma = null;
|
||||
if (data != null) {
|
||||
//img = Utils.grayscale(img);
|
||||
double maxPlot = 255.0;
|
||||
int profileSize = Math.min(data.getWidth(), data.getHeight())/4;
|
||||
|
||||
try {
|
||||
double[] sum = (double[]) Convert.toDouble(data.integrateVertically());
|
||||
@@ -559,18 +582,17 @@ public class ScreenPanel extends Panel {
|
||||
sum[i] = sum[i] - min;
|
||||
}
|
||||
|
||||
maxPlot = 4 * stats.getMax() / data.getHeight();
|
||||
|
||||
double[] gaussian = fitGaussian(sum, x);
|
||||
if (gaussian != null) {
|
||||
if ((gaussian[2] < sum.length * 0.45) && (gaussian[0] > min * 0.03)) {
|
||||
double maxPlot = gaussian[0];
|
||||
xMean = gaussian[1];
|
||||
xSigma = gaussian[2];
|
||||
gaussian[0] += min;
|
||||
double[] fit = getFitFunction(gaussian, x);
|
||||
int[] y = new int[x.length];
|
||||
for (int i = 0; i < x.length; i++) {
|
||||
y[i] = (int) (data.getHeight() - 1 - (fit[i] / maxPlot));
|
||||
y[i] = (int) (data.getHeight() - 1 - ((fit[i] / maxPlot) * profileSize));
|
||||
}
|
||||
vpoly = new Overlays.Polyline(fitPen, x, y);
|
||||
}
|
||||
@@ -587,12 +609,12 @@ public class ScreenPanel extends Panel {
|
||||
for (int i = 0; i < sum.length; i++) {
|
||||
sum[i] = sum[i] - min;
|
||||
}
|
||||
maxPlot = 4 * stats.getMax() / data.getWidth();
|
||||
|
||||
double[] gaussian = fitGaussian(sum, x);
|
||||
if (gaussian != null) {
|
||||
//Only aknowledge beam fully inside the image and peak over 3% of min
|
||||
if ((gaussian[2] < sum.length * 0.45) && (gaussian[0] > min * 0.03)) {
|
||||
double maxPlot = gaussian[0];
|
||||
yMean = gaussian[1];
|
||||
ySigma = gaussian[2];
|
||||
gaussian[0] += min;
|
||||
@@ -600,7 +622,7 @@ public class ScreenPanel extends Panel {
|
||||
|
||||
int[] y = new int[x.length];
|
||||
for (int i = 0; i < x.length; i++) {
|
||||
y[i] = (int) (fit[i] / maxPlot);
|
||||
y[i] = (int) ((fit[i] / maxPlot) * profileSize);
|
||||
}
|
||||
hpoly = new Overlays.Polyline(fitPen, y, x);
|
||||
}
|
||||
@@ -953,6 +975,22 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
void centralizeRenderer(){
|
||||
Point center = null;
|
||||
Dimension size = renderer.getImageSize();
|
||||
double zoom = (renderer.getMode() == RendererMode.Fixed) ? 1.0: renderer.getZoom();
|
||||
if (renderer.getCalibration()!=null){
|
||||
center = renderer.getCalibration().getCenter();
|
||||
} else if (size!=null){
|
||||
center = new Point(size.width/2, size.height/2);
|
||||
}
|
||||
if (center!=null){
|
||||
Point topleft = new Point(Math.max((int) (center.x - renderer.getWidth()/2/zoom), 0),
|
||||
Math.max((int) (center.y - renderer.getHeight()/2/zoom) , 0));
|
||||
renderer.setViewPosition(topleft);
|
||||
}
|
||||
}
|
||||
|
||||
////////
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -984,6 +1022,7 @@ public class ScreenPanel extends Panel {
|
||||
buttonZoomNormal = new javax.swing.JRadioButton();
|
||||
buttonZoom025 = new javax.swing.JRadioButton();
|
||||
buttonZoom05 = new javax.swing.JRadioButton();
|
||||
buttonZoom2 = new javax.swing.JRadioButton();
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
buttonGrayscale = new javax.swing.JRadioButton();
|
||||
buttonRainbow = new javax.swing.JRadioButton();
|
||||
@@ -1191,6 +1230,14 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup1.add(buttonZoom2);
|
||||
buttonZoom2.setText("2");
|
||||
buttonZoom2.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonZoom2ActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
||||
jPanel3.setLayout(jPanel3Layout);
|
||||
jPanel3Layout.setHorizontalGroup(
|
||||
@@ -1198,33 +1245,31 @@ public class ScreenPanel extends Panel {
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addComponent(buttonZoomFit)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonZoom025)
|
||||
.addComponent(buttonZoom05))
|
||||
.addGap(47, 47, 47))
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonZoomNormal)
|
||||
.addComponent(buttonZoomStretch))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
|
||||
.addComponent(buttonZoomFit)
|
||||
.addComponent(buttonZoomNormal)
|
||||
.addComponent(buttonZoomStretch))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonZoom025)
|
||||
.addComponent(buttonZoom05)
|
||||
.addComponent(buttonZoom2))
|
||||
.addGap(47, 47, 47))
|
||||
);
|
||||
jPanel3Layout.setVerticalGroup(
|
||||
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addComponent(buttonZoomNormal)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonZoomFit))
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addComponent(buttonZoom025)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonZoom05)))
|
||||
.addGap(4, 4, 4)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonZoomNormal)
|
||||
.addComponent(buttonZoom025))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonZoomStretch)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonZoomFit)
|
||||
.addComponent(buttonZoom05))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonZoomStretch)
|
||||
.addComponent(buttonZoom2))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
@@ -1328,11 +1373,10 @@ public class ScreenPanel extends Panel {
|
||||
.addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonRainbow)
|
||||
.addComponent(buttonGrayscale)
|
||||
.addComponent(buttonTemperature))
|
||||
.addComponent(checkHistogram, javax.swing.GroupLayout.Alignment.TRAILING))
|
||||
.addComponent(checkHistogram)
|
||||
.addComponent(buttonTemperature)
|
||||
.addComponent(buttonRainbow)
|
||||
.addComponent(buttonGrayscale))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
@@ -1341,31 +1385,28 @@ public class ScreenPanel extends Panel {
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonAutomatic)
|
||||
.addComponent(buttonGrayscale))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonFullRange)
|
||||
.addComponent(buttonRainbow))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonManual)
|
||||
.addComponent(buttonTemperature)))
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addGap(77, 77, 77)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel3)
|
||||
.addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel4)
|
||||
.addComponent(spinnerMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(checkHistogram))))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGap(4, 4, 4)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonAutomatic)
|
||||
.addComponent(buttonGrayscale))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonFullRange)
|
||||
.addComponent(buttonRainbow))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(buttonManual)
|
||||
.addComponent(buttonTemperature))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 4, Short.MAX_VALUE)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel3)
|
||||
.addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel4)
|
||||
.addComponent(spinnerMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(checkHistogram))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Source"));
|
||||
@@ -1401,7 +1442,7 @@ public class ScreenPanel extends Panel {
|
||||
jPanel5Layout.setVerticalGroup(
|
||||
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel5Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGap(4, 4, 4)
|
||||
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(buttonCamtool)
|
||||
.addComponent(buttonDirect))
|
||||
@@ -1431,7 +1472,7 @@ public class ScreenPanel extends Panel {
|
||||
panelScreenLayout.setVerticalGroup(
|
||||
panelScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelScreenLayout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGap(4, 4, 4)
|
||||
.addComponent(comboScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(valueScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
@@ -1461,7 +1502,7 @@ public class ScreenPanel extends Panel {
|
||||
panelScreen1Layout.setVerticalGroup(
|
||||
panelScreen1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelScreen1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGap(4, 4, 4)
|
||||
.addComponent(comboFilter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(valueFilter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
@@ -1484,7 +1525,7 @@ public class ScreenPanel extends Panel {
|
||||
jPanel4Layout.setVerticalGroup(
|
||||
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(10, 10, 10)
|
||||
.addContainerGap()
|
||||
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(panelScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
@@ -1580,18 +1621,7 @@ public class ScreenPanel extends Panel {
|
||||
|
||||
private void buttonMarkerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMarkerActionPerformed
|
||||
try {
|
||||
if (camera != null) {
|
||||
if (buttonMarker.isSelected()) {
|
||||
Dimension d = renderer.getImageSize();
|
||||
Point p = (d == null) ? new Point(renderer.getWidth() / 2, renderer.getHeight() / 2) : new Point(d.width / 2, d.height / 2);
|
||||
Overlay ov = null;
|
||||
marker = new Overlays.Crosshairs(PEN_MARKER, p, new Dimension(100, 100));
|
||||
marker.setMovable(true);
|
||||
} else {
|
||||
marker = null;
|
||||
}
|
||||
renderer.setMarker(marker);
|
||||
}
|
||||
checkMarker();
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
@@ -1674,7 +1704,8 @@ public class ScreenPanel extends Panel {
|
||||
private void buttonZoomNormalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomNormalActionPerformed
|
||||
try {
|
||||
renderer.setMode(RendererMode.Fixed);
|
||||
renderer.setViewPosition(new Point(0, 0));
|
||||
//renderer.setViewPosition(new Point(0, 0));
|
||||
centralizeRenderer();
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
@@ -1684,15 +1715,25 @@ public class ScreenPanel extends Panel {
|
||||
try {
|
||||
if ((camera != null) && (camera instanceof ColormapSource)) {
|
||||
ColormapSource source = (ColormapSource) camera;
|
||||
Color colorReticule = new Color(64,64,64);
|
||||
Color colorMarker = new Color(128,128,128);
|
||||
if (buttonGrayscale.isSelected()) {
|
||||
colorReticule = new Color(0, 192, 0);
|
||||
colorMarker = new Color(64, 255, 64);
|
||||
source.getConfig().colormap = Colormap.Grayscale;
|
||||
}
|
||||
if (buttonTemperature.isSelected()) {
|
||||
if (buttonTemperature.isSelected()) {
|
||||
source.getConfig().colormap = Colormap.Temperature;
|
||||
}
|
||||
if (buttonRainbow.isSelected()) {
|
||||
if (buttonRainbow.isSelected()) {
|
||||
source.getConfig().colormap = Colormap.Rainbow;
|
||||
}
|
||||
|
||||
renderer.setPenReticle(new Pen(colorReticule));
|
||||
renderer.setPenProfile(new Pen(colorReticule));
|
||||
renderer.setPenMarker(new Pen(colorMarker, 2));
|
||||
renderer.setShowReticle(false);
|
||||
checkReticle();
|
||||
source.getConfig().colormapAutomatic = buttonAutomatic.isSelected();
|
||||
source.getConfig().colormapMin = buttonFullRange.isSelected() ? Double.NaN : (Integer) spinnerMin.getValue();
|
||||
source.getConfig().colormapMax = buttonFullRange.isSelected() ? Double.NaN : (Integer) spinnerMax.getValue();
|
||||
@@ -1711,13 +1752,15 @@ public class ScreenPanel extends Panel {
|
||||
private void buttonZoom025ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom025ActionPerformed
|
||||
renderer.setZoom(0.25);
|
||||
renderer.setMode(RendererMode.Zoom);
|
||||
renderer.setViewPosition(new Point(0, 0));
|
||||
//renderer.setViewPosition(new Point(0, 0));
|
||||
centralizeRenderer();
|
||||
}//GEN-LAST:event_buttonZoom025ActionPerformed
|
||||
|
||||
private void buttonZoom05ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom05ActionPerformed
|
||||
renderer.setZoom(0.5);
|
||||
renderer.setMode(RendererMode.Zoom);
|
||||
renderer.setViewPosition(new Point(0, 0));
|
||||
//renderer.setViewPosition(new Point(0, 0));
|
||||
centralizeRenderer();
|
||||
}//GEN-LAST:event_buttonZoom05ActionPerformed
|
||||
|
||||
private void buttonCamtoolActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCamtoolActionPerformed
|
||||
@@ -1765,6 +1808,12 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
}//GEN-LAST:event_checkHistogramActionPerformed
|
||||
|
||||
private void buttonZoom2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom2ActionPerformed
|
||||
renderer.setZoom(2.0);
|
||||
renderer.setMode(RendererMode.Zoom);
|
||||
centralizeRenderer();
|
||||
}//GEN-LAST:event_buttonZoom2ActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JRadioButton buttonAutomatic;
|
||||
private javax.swing.JRadioButton buttonCamtool;
|
||||
@@ -1788,6 +1837,7 @@ public class ScreenPanel extends Panel {
|
||||
private javax.swing.JRadioButton buttonTemperature;
|
||||
private javax.swing.JRadioButton buttonZoom025;
|
||||
private javax.swing.JRadioButton buttonZoom05;
|
||||
private javax.swing.JRadioButton buttonZoom2;
|
||||
private javax.swing.JRadioButton buttonZoomFit;
|
||||
private javax.swing.JRadioButton buttonZoomNormal;
|
||||
private javax.swing.JRadioButton buttonZoomStretch;
|
||||
|
||||
Reference in New Issue
Block a user