Присвоение одного объекта Mat другому дает ошибку

Я получаю объект Mat из параметра функции, когда я назначаю этот объект локальному параметру Mat, выдает мне эту ошибку:

********** Crash dump: **********
Build fingerprint: 'google/hammerhead/hammerhead:6.0/MRA58K/2256973:user/release-keys'
pid: 32563, tid: 333, name: Thread-12993  >>> com.adhamenaya <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Stack frame 10-22 09:44:20.605 14500 14500 F DEBUG   :     #00 pc 00232708  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (cv::Mat::operator=(cv::Ma
t const&)+244): Routine cv::Mat::operator=(cv::Mat const&) at D:/scryptech/ndk_project/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/mat.inl.
hpp:573
Stack frame 10-22 09:44:20.605 14500 14500 F DEBUG   :     #01 pc 0023b4ac  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (GraftySystem::setCurrentF
rame(cv::Mat&)+308): Routine GraftySystem::setCurrentFrame(cv::Mat&) at C:\Users\aenaya\git\GraftyAndroid\GraftyAndroid/jni/grafty-system-settings.cpp
:65
Stack frame 10-22 09:44:20.605 14500 14500 F DEBUG   :     #02 pc 002b3374  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (Java_com_adhamenaya_Nativ
e_runGrafty+540): Routine Java_com_adhamenaya_Native_runGrafty at C:\Users\aenaya\git\GraftyAndroid\GraftyAndroid/jni/grafty-hr-main.cpp:97 (discrimin
ator 1)
Stack frame 10-22 09:44:20.605 14500 14500 F DEBUG   :     #03 pc 0036a491  /data/app/com.adhamenaya-2/oat/arm/base.odex (offset 0x29c000) (byte[] com
.adhamenaya.Native.runGrafty(java.lang.Long)+92)
Stack frame 10-22 09:44:20.605 14500 14500 F DEBUG   :     #04 pc 00369e3d  /data/app/com.adhamenaya-2/oat/arm/base.odex (offset 0x29c000) (void com.a
dhamenaya.MainActivity$2.run()+328)
Stack frame 10-22 09:44:20.606 14500 14500 F DEBUG   :     #05 pc 729298d1  /data/dalvik-cache/arm/system@[email protected] (offset 0x1eb1000)

где: grafty-ч-main.cpp: 97

JNIEXPORT jbyteArray JNICALL Java_com_adhamenaya_Native_runGrafty(JNIEnv * env,jobject obj,jlong frame) {

cv::Mat& inFrame = *(cv::Mat*) frame;line 97 >>>>    gsys.setCurrentFrame(inFrame);

и grafty-системы settings.cpp: 65

void GraftySystem::setCurrentFrame(cv::Mat& frame) {
cv::Size2d imgRes;
float resRatio;
line 65 >>>>>   this->nFrame = frame;

}

это JNI называется так:

private Mat mGray;

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
mRgba = inputFrame.rgba();
Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_BGRA2GRAY);
if (mRgba.empty())
return null;
else if (mRgba.channels() > 1)
Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_BGRA2GRAY);
else
mGray = mRgba;

return mRgba;
}
...
...
result = Native.runGrafty(mGray.getNativeObjAddr());

Редактировать:

mat.inl.hpp: 573

    Mat& Mat::operator = (const Mat& m)
{
if( this != &m )
{
if( m.u )
CV_XADD(&m.u->refcount, 1);
release();
flags = m.flags;
if( dims <= 2 && m.dims <= 2 )
{
dims = m.dims;
rows = m.rows;
cols = m.cols;
line 573 >>>>   step[0] = m.step[0];
step[1] = m.step[1];
}
else
copySize(m);
data = m.data;
datastart = m.datastart;
dataend = m.dataend;
datalimit = m.datalimit;
allocator = m.allocator;
u = m.u;
}
return *this;
}

Пожалуйста, помогите мне разобраться в чем проблема?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]