对不起,我的英语不好
我正在尝试使用Windows Builder和opencv做一个GUI,该GUI打开摄像头并使用一个按钮,我可以拍摄一张照片,并使用filechooser将其保存在导演中,然后当我按下按钮Lapacian或Sobel时,它将应用过滤它,我在youtube上接受了一些代码,但是我不知道为什么我要更改函数highgui.imread中的目录,仅当我将图片另存为lena_color.jpg才可以打开图片。 是否有解决方案,可以将图片自动保存到默认文件夹中,然后按一下该按钮,在该文件夹上应用滤镜?
这是代码:
“按钮:打开网络摄像头”
public void actionPerformed(ActionEvent e) {
webSource =new VideoCapture(0);
myThread = new DaemonThread();
Thread t = new Thread(myThread);
t.setDaemon(true);
myThread.runnable = true;
t.start();
btnStart.setEnabled(false); //start button
btnPause.setEnabled(true); // stop button
“按钮:拍照”
int returnVal = fileChooser.showSaveDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
Highgui.imwrite(file.getPath(), frame1);
“按钮:拉普拉斯语”
//Mat mat = Imgcodecs.imread("bin\\images\\test.jpg");
Mat mat = Highgui.imread("bin\\images\\lena_color.jpg");
imshow("Foto normale", mat);
//CALCULATE LAPLACIAN
Mat mat2 = new Mat(mat.rows(), mat.cols(), CvType.CV_8UC1);
Mat kernel_laplacian = new Mat(3,3, CvType.CV_32F){
{
put(0,0,0);
put(0,1,-1);
put(0,2,0);
put(1,0-1);
put(1,1,4);
put(1,2,-1);
put(2,0,0);
put(2,1,-1);
put(2,2,0);
}
};
Imgproc.filter2D(mat, mat2, -1, kernel_laplacian);
imshow("Filtro (Laplacian)", mat2);
谢谢!