>

Javacv를 사용하여 웹캠을 사용하여 이미지를 캡처하는 다음 코드가 있습니다. 문제없이 작동했지만 지금은 NullPointerException 와 충돌합니다. .

코드 :

public class ClientTest {
    public static void main(String[] args) {
         takeImage();
    }
    public static ImageIcon takeImage() {
        FrameGrabber grabber = null;
        IplImage img = null;
        ImageIcon image = null;
        try {
            grabber = FrameGrabber.createDefault(0);
        } catch (com.googlecode.javacv.FrameGrabber.Exception e1) {
            e1.printStackTrace();
        }
        int i = 0;
        try {
            grabber.start();
            img = grabber.grab();
            if (img != null) {
                cvFlip(img, img, 1);
            }
            // Save image
            image = new ImageIcon(img.getBufferedImage());
            grabber.flush();
            grabber.stop();
        } catch (Exception e) {
            Client.showMessage("Error taking image!");
            e.printStackTrace();
        }
        return image;
    }
}

오류 :

Exception in thread "main" java.lang.NullPointerException
    at com.googlecode.javacv.FrameGrabber.create(FrameGrabber.java:95)
    at com.googlecode.javacv.FrameGrabber.createDefault(FrameGrabber.java:118)
    at Main.ClientTest.takeImage(ClientTest.java:33)
    at Main.ClientTest.main(ClientTest.java:24)

누군가가 약간의 빛을 비출 수 있다면 크게 감사하겠습니다. 월요일에 마감되는 마지막 해 프로젝트의 일부이기 때문에 긴급한 문제입니다 ...


  • 답변 # 1

    FrameGrabber 소스 코드를보고 직접 함께 조각 할 수 있는지 확인하십시오. https://code.google.com/p/javacv/source/browse/src/main/java/com/googlecode/javacv/FrameGrabber.java?r=5bbb841a1d9b03328ad0c3dbc723ad6903220d62

    오류를 보면 takeImage가 FrameGrabber.createDefault ()를 호출 할 때와 FrameGrabber.createDefault ()가 create ()를 호출 할 때 오류가 발생했음을 나타냅니다. 이 두 메소드는 99 행과 123 행에 있으며 getDefault () 메소드는 62 행에 있습니다.이 과정을 살펴보고 어떤 입력으로 인해 문제가 발생했는지 알아보십시오.

    내 추측으로는 getDefault () 메소드가 null을 반환하는 것 같습니다 (아마 FrameGrabber를 확장하는 클래스가 없기 때문에). c가 null이기 때문에 create () 메소드가 c.getConstructor ()를 호출하면 null 포인터 예외를 throw합니다 .

    행운을 빕니다!

  • 답변 # 2

    .jar 가져 오기를 모두 삭제하고 다시 가져 왔습니다. 모든 것이 지금 작동하는 것 같습니다!

  • 이전 android - Firestore Paging Adapter를 사용하여 모델 클래스의 모든 값을 가져 오지 못합니까?
  • 다음 java - 열에서 고유 한 값을 얻는 방법?