我正在尝试运行一些基于OpenCV和JavaCV的Java代码。我的Netbeans IDE版本是7.0,JDk 1.7,JRE7和jre1.8.0
我将OpenCV提取到C:/驱动器,并为opencv和javacv配置了必要的设置。 我将javacv-bin和javacv-cppjars的库上传到库文件夹。
尽管进行编码,但即使在导入必要的库之后,openCV highgui也无法正常工作。当我尝试使用此功能时,其显示找不到符号“ cvLoadImage”。 enter image description here
package openimage;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import java.io.File;
import javax.swing.JFileChooser;
import com.googlecode.javacv.cpp.opencv_highgui;
public class Home extends javax.swing.JFrame {
public Home() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
selectImage = new javax.swing.JButton();
openImage = new javax.swing.JButton();
imagePath = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
selectImage.setText("Select Image");
selectImage.addactionListener(new java.awt.event.actionListener() {
public void actionPerformed(java.awt.event.actionEvent evt) {
selectImageactionPerformed(evt);
}
});
openImage.setText("Open Image");
openImage.addactionListener(new java.awt.event.actionListener() {
public void actionPerformed(java.awt.event.actionEvent evt) {
openImageactionPerformed(evt);
}
});
imagePath.addactionListener(new java.awt.event.actionListener() {
public void actionPerformed(java.awt.event.actionEvent evt) {
imagePathactionPerformed(evt);
}
});
jLabel1.setText("Image Path:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getcontentPane());
getcontentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(imagePath,javax.swing.GroupLayout.DEFAULT_SIZE,238,Short.MAX_VALUE)
.addComponent(jLabel1))
.addGap(18,18,18)
.addComponent(selectImage))
.addComponent(openImage,javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(imagePath,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(selectImage))
.addGap(132,132,132))
.addGroup(layout.createSequentialGroup()
.addGap(77,77,77)
.addComponent(openImage)
.addContainerGap())))
);
pack();
}// </editor-fold>
private void imagePathactionPerformed(java.awt.event.actionEvent evt) {
// TODO add your handling code here:
}
private void selectImageactionPerformed(java.awt.event.actionEvent evt) {
// TODO add your handling code here:
JFileChooser fChooser= new JFileChooser();
fChooser.showOpenDialog(null);
File f = fChooser.getSelectedFile();
imagePath.setText(f.getabsolutePath());
}
private void openImageactionPerformed(java.awt.event.actionEvent evt) {
// TODO add your handling code here:
IplImage img = cvLoadImage();
final CanvasFrame cv = new CanvasFrame("");
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Home().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField imagePath;
private javax.swing.JLabel jLabel1;
private javax.swing.JButton openImage;
private javax.swing.JButton selectImage;
// End of variables declaration
}