이것은 내 프로그램으로 캔버스에 단추를 추가해야합니다. 어떻게이 일을 성취 할 수 있습니까?JavaCV의 CanvasFrame에 구성 요소 표시
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.imageio.ImageIO;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
import org.opencv.objdetect.CascadeClassifier;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
public class CarDetect implements Runnable {
IplImage image;
static int count=0,imagecount=0;
static int label=0;
CanvasFrame canvas = new CanvasFrame("Detect");
public CarDetect() {
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
canvas.setBounds(200,0, 640,500);
**//canvas.add(any component such as panel,button etc)**
}
@Override
public void run() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture camera = new VideoCapture(0);
// 1 for next camera
try {
Mat frame = new Mat();
while (true) {
camera.read(frame);
Mat image_tmp = frame;
MatOfByte matOfByte = new MatOfByte();
BufferedImage bufImage = null;
if(image_tmp!=null)
Highgui.imencode(".jpg", image_tmp, matOfByte);
byte[] byteArray = matOfByte.toArray();
try {
InputStream in = new ByteArrayInputStream(byteArray);
bufImage = ImageIO.read(in);
}
catch (Exception e) {
e.printStackTrace();
}
canvas.showImage(bufImage);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CarDetect gs = new CarDetect();
Thread th = new Thread(gs);
th.start();
}
}