OpenCV

From BITPlan Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Click here to comment see Self Driving RC Car

OpenCV is a computer vision library written in C++. Binding for Java, Python and other environments are available.

Links

Tutorial

load PDF

Issues

see e.g. https://github.com/opencv/opencv/issues/16431

OpenCV Version

OpenCV VideoWriter

see https://github.com/rc-dukes/dukes/issues/48

OpenCV: FFMPEG: tag 0x67706a6d/'mjpg' is not supported with codec id 7 and format 'mpeg / MPEG-1 Systems / MPEG program stream'

SIGILL when calling findChessBoardCorners on MacOS 10.13.6 with macports opencv

crash

reading: ./target/test-classes/cameramatrix/GOPR0032.jpg
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x0000000141f4e8c6, pid=35515, tid=0x0000000000002503
#
# JRE version: Java(TM) SE Runtime Environment (8.0_191-b12) (build 1.8.0_191-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.191-b12 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [libopencv_imgproc.3.4.dylib+0x2088c6]  cv::Ptr<cv::FilterEngine> cv::makePtr<cv::FilterEngine, cv::Ptr<cv::BaseFilter>, cv::Ptr<cv::BaseRowFilter>, cv::Ptr<cv::BaseColumnFilter>, int, int, int, int>(cv::Ptr<cv::BaseFilter> const&, cv::Ptr<cv::BaseRowFilter> const&, cv::Ptr<cv::BaseColumnFilter> const&, int const&, int const&, int const&, int const&)+0x4e
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/wf/Documents/workspace/dukes/rc-camera-matrix/hs_err_pid35515.log
#

log

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libopencv_imgproc.3.4.dylib+0x2088c6]  cv::Ptr<cv::FilterEngine> cv::makePtr<cv::FilterEngine, cv::Ptr<cv::BaseFilter>, cv::Ptr<cv::BaseRowFilter>, cv::Ptr<cv::BaseColumnFilter>, int, int, int, int>(cv::Ptr<cv::BaseFilter> const&, cv::Ptr<cv::BaseRowFilter> const&, cv::Ptr<cv::BaseColumnFilter> const&, int const&, int const&, int const&, int const&)+0x4e
C  [libopencv_imgproc.3.4.dylib+0x1b07c]  cv::cpu_baseline::createBoxFilter(int, int, cv::Size_<int>, cv::Point_<int>, bool, int)+0x151
C  [libopencv_imgproc.3.4.dylib+0x1b6e3]  cv::createBoxFilter(int, int, cv::Size_<int>, cv::Point_<int>, bool, int)+0xb0
C  [libopencv_imgproc.3.4.dylib+0x1b9b5]  cv::boxFilter(cv::_InputArray const&, cv::_OutputArray const&, int, cv::Size_<int>, cv::Point_<int>, bool, int)+0x287
C  [libopencv_imgproc.3.4.dylib+0x1e09bc]  cv::adaptiveThreshold(cv::_InputArray const&, cv::_OutputArray const&, double, int, int, int, double)+0x470
C  [libopencv_calib3d.3.4.dylib+0x7ad6]  cv::findChessboardCorners(cv::_InputArray const&, cv::Size_<int>, cv::_OutputArray const&, int)+0x1626
C  [libopencv_java343.dylib+0x7de02]  Java_org_opencv_calib3d_Calib3d_findChessboardCorners_11+0x6a
j  org.opencv.calib3d.Calib3d.findChessboardCorners_1(JDDJ)Z+0
j  org.opencv.calib3d.Calib3d.findChessboardCorners(Lorg/opencv/core/Mat;Lorg/opencv/core/Size;Lorg/opencv/core/MatOfPoint2f;)Z+18
j  nl.vaneijndhoven.dukes.camera.matrix.CameraMatrix.findCorners(Lorg/opencv/core/Mat;IILorg/opencv/core/MatOfPoint2f;)Z+14

diagnosis

therapy

ask question - bug?

Crash on tcp connection open

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000001227bae5e, pid=58965, tid=0x0000000000018503
#
# JRE version: Java(TM) SE Runtime Environment (8.0_152-b16) (build 1.8.0_152-b16)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.152-b16 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# [tcp @ 0x7f7f41780780] Connection to tcp://picarford:8090 failed: Connection refused
C  [libopencv_videoio.3.4.dylib+0x25e5e]  AutoLock::~AutoLock()+0x4
#
# [thread 80387 also had an error]
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/wf/Documents/workspace/dukes/rc-server/hs_err_pid58965.log
OpenCV: Couldn't read video stream from file "http://picarford:8090/stream/video.mjpeg"
[ERROR:1] VIDEOIO(cvCreateFileCapture_Images(filename.c_str())): raised OpenCV exception:

OpenCV(3.4.8) /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_graphics_opencv/opencv/work/opencv-3.4.8/modules/videoio/src/cap_images.cpp:246: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): http://picarford:8090/stream/video.mjpeg in function 'icvExtractPattern'

RAX=0x00000001227b8200: _ZN16CvCapture_FFMPEG4openEPKc+0x360 in /opt/local/lib/libopencv_videoio.3.4.dylib at 0x0000000122795000
RBX=0x00007f7f4a255c70 is an unknown value
RCX=0x00007fff7a04609a: poll+0xa in /usr/lib/system/libsystem_kernel.dylib at 0x00007fff7a028000
RDX=0x0000000000000000 is an unknown value

Macports installation

sudo port install opencv +java

What Links Here