Hallo Forum,
auf dem Weg Java zu lernen beschäftige ich mich zum ersten mal mit Threads. Ich habe dazu ein kleines Projekt erstellt, welches mit Hilfe von OpenCV und ZXing einen Barcode unter Verwendung der Webcam decodieren soll, um dann einen String auszugeben. Das ganze habe ich in einen Thread gepackt, den ich so lange laufen lassen möchte, bis ein Ergenis vorliegt. Dazu habe ich das folgende gebaut:
[Java]public class MainApp extends Thread {
public static void main(String[] args) {
new MainApp().start();
}
@Override
public void run() {
while (!isInterrupted()) {
Map hintMap = new HashMap();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
try {
grabber.start();
IplImage image = grabber.grab();
if (image != null) {
BinaryBitmap binaryBitmap = new BinaryBitmap(
new HybridBinarizer(
new BufferedImageLuminanceSource(
image.getBufferedImage())));
Result qrCodeResult = new MultiFormatReader().decode(
binaryBitmap, hintMap);
System.out.println(qrCodeResult.getText());
interrupt();
}
} catch (Exception e) {
System.out.println("Kein Code erkannt ....");
}
}
}
}[/Java]
Jetzt lande ich durch den OpenCVFrameGrabber aber immer in der Exception und das ganze Konstrukt schmiert irgendwann ab.
Habe keinen Schimmer warum. Kann mir da Jemand mal bitte nen Tip geben? Danke!
VG,
VR
auf dem Weg Java zu lernen beschäftige ich mich zum ersten mal mit Threads. Ich habe dazu ein kleines Projekt erstellt, welches mit Hilfe von OpenCV und ZXing einen Barcode unter Verwendung der Webcam decodieren soll, um dann einen String auszugeben. Das ganze habe ich in einen Thread gepackt, den ich so lange laufen lassen möchte, bis ein Ergenis vorliegt. Dazu habe ich das folgende gebaut:
[Java]public class MainApp extends Thread {
public static void main(String[] args) {
new MainApp().start();
}
@Override
public void run() {
while (!isInterrupted()) {
Map hintMap = new HashMap();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
try {
grabber.start();
IplImage image = grabber.grab();
if (image != null) {
BinaryBitmap binaryBitmap = new BinaryBitmap(
new HybridBinarizer(
new BufferedImageLuminanceSource(
image.getBufferedImage())));
Result qrCodeResult = new MultiFormatReader().decode(
binaryBitmap, hintMap);
System.out.println(qrCodeResult.getText());
interrupt();
}
} catch (Exception e) {
System.out.println("Kein Code erkannt ....");
}
}
}
}[/Java]
Jetzt lande ich durch den OpenCVFrameGrabber aber immer in der Exception und das ganze Konstrukt schmiert irgendwann ab.
Java:
Kein Code erkannt ....
Kein Code erkannt ....
Kein Code erkannt ....
Kein Code erkannt ....
Kein Code erkannt ....
Kein Code erkannt ....
Kein Code erkannt ....
Kein Code erkannt ....
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff9a5a28b36, pid=2424, tid=7020
#
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b17) (build 1.8.0_40-ea-b17)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.40-b21 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [ntdll.dll+0x38b36]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\VictorRomeo\Documents\Spaces\Eclipse Workspace\WebCamReader\hs_err_pid2424.log
#
# If you would like to submit a bug report, please visit:
# [url=http://bugreport.java.com/bugreport/crash.jsp]HotSpot Virtual Machine Error Reporting Page[/url]
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Habe keinen Schimmer warum. Kann mir da Jemand mal bitte nen Tip geben? Danke!
VG,
VR
Zuletzt bearbeitet: