⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jcamcalib.java

📁 camra calibration and you will enjoy it!
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/* * CalibratorGUI.java */package itesm.gvision.apps.calibrator;import itesm.gvision.tools.*;import itesm.gvision.image.tools.*;import itesm.gvision.image.process.*;import itesm.gvision.tools.*;import itesm.gvision.components.*;import java.awt.*;import java.awt.image.*;import java.awt.geom.*;import javax.swing.*;import java.io.*;import java.util.*;import java.text.*;//----------------------------------------------------------------------------------/** * Camera calibration utility GUI. Front-end for the OCV calibration library. * @author  hugo */public class JCamCalib extends javax.swing.JFrame {	/** Image list */	private Vector imagesCalib = new Vector();	/** Image dimensions */	private int fw, fh;		/** OCV Bridge */	private CalibratorOCV cocv = new CalibratorOCV();	/** Distorted image */	private BufferedImage distorted;		/** Undistorted image */	private BufferedImage undistorted;	/** Homography matrices */	private double homoI2W[], homoW2I[];		/** Homography transform */	private HomographyTransform homoTrans;		/** Zoom factor for homography point selection */	private int scaleHomoPoint = 20;		/** Size for subimage area selection */	private int subImageSize = 20;		/** Homography image projection opertations */	private HomographyImageProjection hip;	//----------------------------------------------------------------------------------	/** Creates new form CalibratorGUI */	public JCamCalib() 	{		initComponents();		//this.pnlIPCalibrationImage.add(this.cip);		this.pnlIPCalibrationImages.add(this.cip);		this.pnlIPUndistortedImage.add(this.cipUndistored);		this.pnlHMImageReference.add(this.chomoip);		this.pnlHMTestMode.add(this.chomoipTest);		this.pnlHMImageProjection.add(this.ips);	}		//----------------------------------------------------------------------------------	/** This method is called from within the constructor to	 * initialize the form.	 * WARNING: Do NOT modify this code. The content of this method is	 * always regenerated by the Form Editor.	 */    private void initComponents() {//GEN-BEGIN:initComponents        jTabbedPane1 = new javax.swing.JTabbedPane();        jPanel1 = new javax.swing.JPanel();        jSplitPane1 = new javax.swing.JSplitPane();        jPanel5 = new javax.swing.JPanel();        jPanel7 = new javax.swing.JPanel();        jPanel10 = new javax.swing.JPanel();        btnIPAddFromFile = new javax.swing.JButton();        btnIPAddFromCamera = new javax.swing.JButton();        jPanel11 = new javax.swing.JPanel();        btnIPDel = new javax.swing.JButton();        jPanel8 = new javax.swing.JPanel();        jScrollPane1 = new javax.swing.JScrollPane();        lstImagesCalib = lstImagesCalib = new JList(lstImgsCalib);        jPanel9 = new javax.swing.JPanel();        btnIPCompute = new javax.swing.JButton();        jPanel6 = new javax.swing.JPanel();        jtpIntCalOptions = new javax.swing.JTabbedPane();        pnlIPCalibrationImages = new javax.swing.JPanel();        pnlIPResults = new javax.swing.JPanel();        jPanel12 = new javax.swing.JPanel();        eIPMatrix0 = new javax.swing.JTextField();        eIPMatrix1 = new javax.swing.JTextField();        eIPMatrix2 = new javax.swing.JTextField();        eIPMatrix3 = new javax.swing.JTextField();        eIPMatrix4 = new javax.swing.JTextField();        eIPMatrix5 = new javax.swing.JTextField();        eIPMatrix6 = new javax.swing.JTextField();        eIPMatrix7 = new javax.swing.JTextField();        eIPMatrix8 = new javax.swing.JTextField();        jPanel13 = new javax.swing.JPanel();        jLabel1 = new javax.swing.JLabel();        eIPDistk1 = new javax.swing.JTextField();        lblIPDistp1 = new javax.swing.JLabel();        eIPDistp1 = new javax.swing.JTextField();        lblIPDistk2 = new javax.swing.JLabel();        eIPDistk2 = new javax.swing.JTextField();        jLabel4 = new javax.swing.JLabel();        eIPDistp2 = new javax.swing.JTextField();        jPanel16 = new javax.swing.JPanel();        jPanel17 = new javax.swing.JPanel();        eIPConfigFmt = new javax.swing.JTextArea();        btnIP = new javax.swing.JButton();        jPanel14 = new javax.swing.JPanel();        pnlIPUndistortedImage = new javax.swing.JPanel();        jPanel15 = new javax.swing.JPanel();        btnIPUndistortedLoad = new javax.swing.JButton();        btnIPUndistortedSaveAs = new javax.swing.JButton();        btnIPUndist = new javax.swing.JToggleButton();        jPanel3 = new javax.swing.JPanel();        jSplitPane2 = new javax.swing.JSplitPane();        jPanel18 = new javax.swing.JPanel();        jPanel20 = new javax.swing.JPanel();        btnHMPointAddMode = new javax.swing.JToggleButton();        btnHMPointEdit = new javax.swing.JButton();        btnHMPointDel = new javax.swing.JButton();        jPanel33 = new javax.swing.JPanel();        jLabel2 = new javax.swing.JLabel();        jPanel21 = new javax.swing.JPanel();        jScrollPane2 = new javax.swing.JScrollPane();        lstHMPoints = lstHMPoints = new JList(lstHomoPoints);        jPanel24 = new javax.swing.JPanel();        btnHMGetMatrix = new javax.swing.JButton();        jPanel19 = new javax.swing.JPanel();        jtpHMOptions = new javax.swing.JTabbedPane();        jPanel25 = new javax.swing.JPanel();        jPanel22 = new javax.swing.JPanel();        btnHMLoadUndistorted = new javax.swing.JButton();        pnlHMImageReference = new javax.swing.JPanel();        jPanel23 = new javax.swing.JPanel();        lblHMImgCoordinates = new javax.swing.JLabel();        jPanel26 = new javax.swing.JPanel();        jPanel28 = new javax.swing.JPanel();        eHM0 = new javax.swing.JTextField();        eHM1 = new javax.swing.JTextField();        eHM2 = new javax.swing.JTextField();        eHM3 = new javax.swing.JTextField();        eHM4 = new javax.swing.JTextField();        eHM5 = new javax.swing.JTextField();        eHM6 = new javax.swing.JTextField();        eHM7 = new javax.swing.JTextField();        eHM8 = new javax.swing.JTextField();        jPanel32 = new javax.swing.JPanel();        eHM_w2i_0 = new javax.swing.JTextField();        eHM_w2i_1 = new javax.swing.JTextField();        eHM_w2i_2 = new javax.swing.JTextField();        eHM_w2i_3 = new javax.swing.JTextField();        eHM_w2i_4 = new javax.swing.JTextField();        eHM_w2i_5 = new javax.swing.JTextField();        eHM_w2i_6 = new javax.swing.JTextField();        eHM_w2i_7 = new javax.swing.JTextField();        eHM_w2i_8 = new javax.swing.JTextField();        jPanel29 = new javax.swing.JPanel();        jPanel31 = new javax.swing.JPanel();        eHMConfigFmt = new javax.swing.JTextArea();        btnHMSaveMatrix = new javax.swing.JButton();        jPanel30 = new javax.swing.JPanel();        jPanel27 = new javax.swing.JPanel();        pnlHMTestMode = new javax.swing.JPanel();        jPanel35 = new javax.swing.JPanel();        lblHMTestImagePoint = new javax.swing.JLabel();        lblHMTestWorldPoint = new javax.swing.JLabel();        jPanel34 = new javax.swing.JPanel();        pnlHMImageProjection = new javax.swing.JPanel();        jPanel37 = new javax.swing.JPanel();        jPanel36 = new javax.swing.JPanel();        jLabel6 = new javax.swing.JLabel();        cbxHMImgProjectionOrigin = new javax.swing.JComboBox();        jLabel3 = new javax.swing.JLabel();        eHMImageProjectionScale = new javax.swing.JTextField();        jLabel5 = new javax.swing.JLabel();        eHMImgProjectorX1 = new javax.swing.JTextField();        eHMImgProjectorY1 = new javax.swing.JTextField();        eHMImgProjectorX2 = new javax.swing.JTextField();        eHMImgProjectorY2 = new javax.swing.JTextField();        btnHMImageProjScaleGenerate = new javax.swing.JButton();        jPanel38 = new javax.swing.JPanel();        btnHMImageProjScaleApply1 = new javax.swing.JButton();        jPanel4 = new javax.swing.JPanel();        jPanel2 = new javax.swing.JPanel();        jButton1 = new javax.swing.JButton();        jButton2 = new javax.swing.JButton();        getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS));        setTitle("JCamCalib :: A camera calibration utility");        addWindowListener(new java.awt.event.WindowAdapter() {            public void windowClosing(java.awt.event.WindowEvent evt) {                exitForm(evt);            }        });        jTabbedPane1.setPreferredSize(new java.awt.Dimension(229, 32767));        jPanel1.setLayout(new java.awt.BorderLayout());        jPanel5.setLayout(new javax.swing.BoxLayout(jPanel5, javax.swing.BoxLayout.Y_AXIS));        jPanel10.setBorder(new javax.swing.border.TitledBorder("Add image from:"));        btnIPAddFromFile.setText("File...");        btnIPAddFromFile.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnIPAddFromFileActionPerformed(evt);            }        });        jPanel10.add(btnIPAddFromFile);        btnIPAddFromCamera.setText("Camera");        btnIPAddFromCamera.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnIPAddFromCameraActionPerformed(evt);            }        });        jPanel10.add(btnIPAddFromCamera);        jPanel7.add(jPanel10);        jPanel11.setBorder(new javax.swing.border.TitledBorder("Selection:"));        btnIPDel.setText("Delete");        btnIPDel.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnIPDelActionPerformed(evt);            }        });        jPanel11.add(btnIPDel);        jPanel7.add(jPanel11);        jPanel5.add(jPanel7);        jPanel8.setLayout(new java.awt.BorderLayout());        lstImagesCalib.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);        lstImagesCalib.addListSelectionListener(new javax.swing.event.ListSelectionListener() {            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {                lstImagesCalibValueChanged(evt);            }        });        jScrollPane1.setViewportView(lstImagesCalib);        jPanel8.add(jScrollPane1, java.awt.BorderLayout.CENTER);        jPanel5.add(jPanel8);        btnIPCompute.setForeground(new java.awt.Color(255, 0, 0));        btnIPCompute.setText("Calibrate");        btnIPCompute.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnIPComputeActionPerformed(evt);            }        });        jPanel9.add(btnIPCompute);        jPanel5.add(jPanel9);        jSplitPane1.setLeftComponent(jPanel5);        jPanel6.setLayout(new java.awt.BorderLayout());        jtpIntCalOptions.setTabPlacement(javax.swing.JTabbedPane.BOTTOM);        pnlIPCalibrationImages.setLayout(new java.awt.BorderLayout());        jtpIntCalOptions.addTab("Calibration images", pnlIPCalibrationImages);        pnlIPResults.setLayout(new javax.swing.BoxLayout(pnlIPResults, javax.swing.BoxLayout.Y_AXIS));        jPanel12.setLayout(new java.awt.GridLayout(3, 3, 3, 3));        jPanel12.setBorder(new javax.swing.border.TitledBorder("Intrinsic parameters"));        eIPMatrix0.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        eIPMatrix0.setToolTipText("fx");        jPanel12.add(eIPMatrix0);        eIPMatrix1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel12.add(eIPMatrix1);        eIPMatrix2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        eIPMatrix2.setToolTipText("cx");        jPanel12.add(eIPMatrix2);        eIPMatrix3.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel12.add(eIPMatrix3);        eIPMatrix4.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        eIPMatrix4.setToolTipText("fy");        jPanel12.add(eIPMatrix4);        eIPMatrix5.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        eIPMatrix5.setToolTipText("cy");        jPanel12.add(eIPMatrix5);        eIPMatrix6.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel12.add(eIPMatrix6);        eIPMatrix7.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel12.add(eIPMatrix7);        eIPMatrix8.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel12.add(eIPMatrix8);        pnlIPResults.add(jPanel12);        jPanel13.setLayout(new java.awt.GridLayout(2, 4, 3, 3));        jPanel13.setBorder(new javax.swing.border.TitledBorder("Distortion coefficients"));        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);        jLabel1.setText("k1 =");        jPanel13.add(jLabel1);        eIPDistk1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel13.add(eIPDistk1);        lblIPDistp1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);        lblIPDistp1.setText("p1 =");        jPanel13.add(lblIPDistp1);        eIPDistp1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel13.add(eIPDistp1);        lblIPDistk2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);        lblIPDistk2.setText("k2 =");        jPanel13.add(lblIPDistk2);        eIPDistk2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);        jPanel13.add(eIPDistk2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -