bytedeco / javacpp

The missing bridge between Java and native C++
Other
4.48k stars 581 forks source link

Crash on cvtColor #441

Closed cotfas closed 3 years ago

cotfas commented 3 years ago

Mac OS X Catalina 10.15.7 (19H15) Apache Karaf 4.1.5

Dump file:

Stack: [0x0000700005eeb000,0x0000700005feb000], sp=0x0000700005fe5e80, free space=1003k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libsystem_platform.dylib+0x929] _platform_memmove$VARIANT$Haswell+0x29 C [libopencv_core.3.2.dylib+0x614ee] _ZNK2cv3Mat6copyToERKNS_12_OutputArrayE+0xc2e C [libopencv_core.3.2.dylib+0x147077] _ZNK2cv11_InputArray6copyToERKNS_12_OutputArrayE+0x387 C [libopencv_imgproc.3.2.dylib+0x276b7] _ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii+0x257 C [libjniopencv_imgproc.dylib+0x7be79] Java_org_bytedeco_javacpp_opencv_1imgproc_cvtColor__Lorg_bytedeco_javacpp_opencv_1core_00024Mat_2Lorg_bytedeco_javacpp_opencv_1core_00024Mat_2I+0xf9

Dependencies:

<javacv.version>1.3.3</javacv.version>
<javacv.presets.version>3.2.0-1.3</javacv.presets.version>

 <dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv-platform</artifactId>
    <version>${javacv.presets.version}</version>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacpp</artifactId>
    <version>${javacv.version}</version>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>${javacv.version}</version>
</dependency>

Code:

Mat matrix = new OpenCVFrameConverter.ToMat().convert(new Java2DFrameConverter().convert(bufferedImage)); Mat grayMatrix = new Mat(matrix.size(), CV_8UC1); if (matrix.channels() == 4) { cvtColor(matrix, matrix, CV_BGRA2BGR); <<< crashing here with SIGSEGV on 6k/9k pixel image (PNG size 45mb) }

Console:

/# SIGSEGV (0xb) at pc=0x00007fff6f52d929, pid=10594, tid=0x000000000001b923 /# /# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12) /# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode bsd-amd64 compressed oops) /# Problematic frame: /# C [libsystem_platform.dylib+0x929] _platform_memmove$VARIANT$Haswell+0x29

Posted:

https://gitter.im/bytedeco/javacpp https://github.com/bytedeco/javacpp/issues/441 https://github.com/opencv/opencv/issues/19039 https://github.com/bytedeco/javacpp-presets/issues/979

saudet commented 3 years ago

Duplicate of https://github.com/bytedeco/javacpp-presets/issues/979