홈>
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
- 답변 # 2
.jar 가져 오기를 모두 삭제하고 다시 가져 왔습니다. 모든 것이 지금 작동하는 것 같습니다!
관련 질문
- ""this.p "가 null이므로" "java.awt.Point.getX ()"를 호출 할 수 없음 "을 수정하는 방법)
- java : Android Studio에서 OpenCV 라이브러리를 가져올 수 없습니다.
- java : OpenCV-비디오 및 이미지에서 칠판 가장자리 찾기
- "java.util.Map.get (Object)"의 Java Hashmap 반환 값이 null입니다.
- java : NullPointerException : null 객체 참조에 대한 android.content.Context.getPackageName ()
- Java 기반 개발을 위해 Java jar로 OpenCV @ 2를 설치하는 방법
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합니다 .행운을 빕니다!