プロジェクトに OpenImaj を使用しており、ビデオを 800*600 でパネルに表示する必要がありますが、ボタンをクリックしたときに 1920,1080 で画像をキャプチャする必要があります。
私の戦略は、最初は 1920,1080 で Web カメラからキャプチャし、panelVideo に含まれるラベルのアイコンで画像のサイズを変更することでした。
私の問題は、パフォーマンスが非常に低いことです。
フレームサイズを変更せずに panelVideo のサイズに応じてビデオのサイズを変更する効率的な方法はありますか (1920,1080 で画像を保存するために使用します)。ご回答ありがとうございます。よろしく。
final VideoCapture vc = new VideoCapture(1920,1080);
vc.setFPS(10);
final VideoDisplay<MBFImage> display = VideoDisplay.createVideoDisplay(vc, panelVideo);
display.addVideoListener(new VideoDisplayAdapter<MBFImage>()
{
@Override
public void beforeUpdate(final MBFImage frame)
{
//here I create a bufferedImage from the resized frame
BufferedImage img = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) img.getGraphics();
g.drawImage(ImageUtilities.createBufferedImageForDisplay(frame), 0, 0, 800, 600, null);
//here is the label that I use to display the video
labelVideo.setIcon(new ImageIcon(ImageUtilities.createBufferedImageForDisplay(frame)));
}
});