Что лучший метод должен получить изображения от живого видеоустройства для использования Java-приложением?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

25
задан Bob Cross 29 January 2010 в 02:35
поделиться

5 ответов

Эта реализация JavaCV работает отлично.

КОД:

import com.googlecode.javacv.OpenCVFrameGrabber;

import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_highgui.*;

public class CaptureImage {
    private static void captureFrame() {
        // 0-default camera, 1 - next...so on
        final OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
        try {
            grabber.start();
            IplImage img = grabber.grab();
            if (img != null) {
                cvSaveImage("capture.jpg", img);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        captureFrame();
    }
}

Существует также пост о просмотре живого видео с камеры. И конфигурация для JavaCV:

Я думаю, что это будет соответствовать вашим требованиям.

7
ответ дан gtiwari333 28 November 2019 в 21:59
поделиться

FMJ может определенно захватывать видео и превращать его в кадры MJPEG.

3
ответ дан 28 November 2019 в 21:59
поделиться

Что касается тупиковости JMF, знаете ли вы о реализации FMJ ? Я не знаю, считается ли это «лучшим» решением, но, вероятно, стоит добавить к обсуждению.

2
ответ дан Greg Mattes 28 November 2019 в 21:59
поделиться

Это моя реализация JavaCV с видеовыходом высокого разрешения и без заметного падения частоты кадров по сравнению с другими решениями (только когда перефокусируется моя веб-камера, я замечаю небольшое падение, хотя и на мгновение).

import java.awt.image.BufferedImage;
import java.io.File;

import javax.swing.JFrame;

import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.OpenCVFrameRecorder;
import com.googlecode.javacv.cpp.opencv_core.IplImage;

public class Webcam implements Runnable {

    IplImage image;
    static CanvasFrame frame = new CanvasFrame("Web Cam");
    public static boolean running = false;

    public Webcam()
    {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void run()
    {
        try
        {
            grabber.setImageWidth(800);
            grabber.setImageHeight(600);
            grabber.start();
            while (running)
            {
                IplImage cvimg = grabber.grab();
                BufferedImage image;
                if (cvimg != null)
                {
                    // opencv_core.cvFlip(cvimg, cvimg, 1); // mirror
                    // show image on window
                    image = cvimg.getBufferedImage();
                    frame.showImage(image);
                }
            }
            grabber.stop();
            frame.dispose();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    public static void main(String... args)
    {
        Webcam webcam = new Webcam();
        webcam.start();
    }

    public void start()
    {
        new Thread(this).start();
        running = true;
    }

    public void stop()
    {
        running = false;
    }
}
0
ответ дан syb0rg 28 November 2019 в 21:59
поделиться

Вы когда-либо смотрели Processing.org ? Это - в основном упрощенная среда разработки приложения для разработки "вычурных" приложений и физических вычислительных платформ, но это основано на Java, и можно копнуть к "реальному" Java внизу.

причина, это пришло на ум, состоит в том, что существует несколько видео библиотеки для Обработки, которые являются в основном компонентами Java (по крайней мере, я думаю, что они - сайт имеет всю техническую информацию, в которой Вы, возможно, нуждались бы). Существует учебное руководство при пользовании библиотеками Обработки и инструментами в Eclipse IDE. Существуют также многочисленный примеры на видеосъемке и обработке.

, Даже если Вы не можете пользоваться библиотеками непосредственно, Обработка является большим языком/средой для разработки алгоритмов. Существует несколько ярких примеров захвата изображения и видеосъемки и обработки в режиме реального времени там.

-1
ответ дан CMPalmer 28 November 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: