ProCamCalib (bin) not grabbing or projecting patterns

69 views
Skip to first unread message

kidc...@gmail.com

unread,
Aug 23, 2016, 8:52:16 PM8/23/16
to javacv
Hello,

I'm trying to calibrate a projector with the ProCamCalib using the binaries from the github page (version 1.2). I'm on a Win 8.1 64 bits.

The UI is loading properly and the second screen (projector) is correctly detected.

But when I start the calibration procedure, the app crashes without any messages (neither a pop-up nor a message in the cmd).

I started to investigate without any success currently.

I tried with various camera:
* Logitech webcam FullHD
* builtin webcam.
* Prosilica Gige with OpenCVGrabber.

The logitech camera is detected when using VideoInput grabber but when I press play, the app crashes.
I tested with the OpenCV grabber but the same happens. (NB: Both webcams are working with the opencv VideoCapture(0) or VideoCapture(1) (test done in c++))

I tested with the completion of the camera settings (camera resolution, framerate, bitsperpixel, devicenumber) but still nothing.

I don't even get the app to project any pattern or see an image capture.

Do you have any idea about the origin(s) of this problem?

Thanks for your help,

kidc...@gmail.com

unread,
Aug 25, 2016, 11:10:05 AM8/25/16
to javacv

Update: I changed the computer. On a fresh ubuntu 14.4, the soft seems to work better.
When I start the calibration, I briefly see the projected pattern.
Here is the error with the OpenCV grabber and Prosilica Gige Cam:

Aug 25, 2016 4:41:35 PM org.bytedeco.procamcalib.CalibrationWorker doInBackground
SEVERE: Could not perform calibration
org.bytedeco.javacv.FrameGrabber$Exception: read() Error: Could not read frame in start().
    at org.bytedeco.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:211)
    at org.bytedeco.procamcalib.CalibrationWorker.doInBackground(CalibrationWorker.java:197)
    at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at javax.swing.SwingWorker.run(SwingWorker.java:335)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Here is the error when I use the logitech webcam and the OpenCvGgrabber:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGFPE (0x8) at pc=0x00007f585da9cfaa, pid=10533, tid=140016863840000
#
# JRE version: OpenJDK Runtime Environment (7.0_111-b01) (build 1.7.0_111-b01)
# Java VM: OpenJDK 64-Bit Server VM (24.111-b01 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 2.6.7
# Distribution: Ubuntu 14.04 LTS, package 7u111-2.6.7-0ubuntu0.14.04.3
# Problematic frame:
# C  [libjniARToolKitPlus.so+0x40faa]  ARToolKitPlus::Tracker::arLabeling_LUM(unsigned char const*, int, int*, int**, float**, int**, int**)+0x2ba

Samuel Audet

unread,
Aug 28, 2016, 7:17:42 AM8/28/16
to jav...@googlegroups.com
Other people seem to have the same problem:
https://github.com/bytedeco/procamcalib/issues/4

Unfortunately, I can't reproduce it here on my machines, so it's hard
for me to fix this.

If you could try to rebuild from source and let me know if that works or
not, it would help.

Samuel

Samuel Audet

unread,
Aug 28, 2016, 7:28:10 AM8/28/16
to jav...@googlegroups.com
OpenCV doesn't work very well to grab frames. FFmpeg usually works
better, but I think in the case of something like a Prosilica camera, we
would first need to create a new FrameGrabber to use their own
proprietary API. But maybe not. Check the docs of the camera to see if
it supports some standard API. If it does, FFmpegFrameGrabber should work.

Samuel
Reply all
Reply to author
Forward
0 new messages