Opencv HOGDescriptor -> mexFunction, Matlab crash
3 views (last 30 days)
Show older comments
Hello everybody,
I am trying to usu the Hog descriptor extractor of opencv in matlab. I have compiled the mexFunction without problem, but when I call Hog->compute my matlab crashes. I am using Ubuntu 12.04 64 bits. This is my C++ code:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs,const mxArray *prhs[]){
//Size
Size dst_image_size=Size(32,32);
//Read Matlab image and load it to and cvMat
IplImage* inputImg = mxArr_to_new_IplImage(prhs[0]);
//Creating the Mat image from the cvMat
Mat image=Mat(inputImg,false);
//Resizing 31*31
resize(image, image, dst_image_size);
//Conversion to black and white
cvtColor(image, image,CV_RGB2GRAY);
HOGDescriptor* d;
vector<float> descriptorsValues;
vector<Point> localizations;
//OPENCV HOG PARAMETERS
//Detection window size. Align to block size and block stride.
Size winSize;
//Block size in pixels. Align to cell size.
Size blockSize=Size(16,16);
// Block stride. It must be a multiple of cell size.
Size blockStride;
//Cell size
Size cellSize=Size(8,8);
//Number of bins
int nbins=8;
//Dimensions of the sobel filter for gradient computation,
int derivAperture=1;
//Gaussian smoothing window parameter(-1 no smoothing).
double winSigma=-1;
//L2-Hys normalization method shrinkage
int histogramNormType=HOGDescriptor::L2Hys;
double L2HysThreshold=0.2;
//Flag to specify whether the gamma correction preprocessing is required or not.
bool gammaCorrection=false;
//Maximum number of detection windows(Maximum number of detection window increases)
int nlevels=HOGDescriptor::DEFAULT_NLEVELS;
Size win_stride=Size(32,32);
Size win_padding=Size(0,0);
d=new HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins,derivAperture,winSigma,histogramNormType,L2HysThreshold,gammaCorrection,nlevels);
d->compute(image,descriptorsValues,win_stride,win_padding,localizations);
plhs[0]=getMexArray(descriptorsValues);
image.release();
cvReleaseImage(&inputImg);
delete d;
}
This is the matlab crash report:
------------------------------------------------------------------------ Floating point exception detected at Wed Aug 22 14:24:12 2012 ------------------------------------------------------------------------
Configuration: Crash Decoding : Disabled Current Visual : 0x21 (class 4, depth 24) Default Encoding: UTF-8 GNU C Library : 2.15 stable MATLAB License : 544109 MATLAB Root : /usr/local/MATLAB/R2011a MATLAB Version : 7.12.0.635 (R2011a) Operating System: Linux 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 Processor ID : x86 Family 15 Model 2 Stepping 3, AuthenticAMD Virtual Machine : Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot™ 64-Bit Server VM mixed mode Window System : The X.Org Foundation (11103000), display :0.0
Fault Count: 1
Abnormal termination: Floating point exception
Register State (from fault): RAX = 00000000fffffff0 RBX = 00007fc90717f5e0 RCX = 0000000000000008 RDX = 00000000ffffffff RSP = 00007fc90717f300 RBP = 00007fc90717f4e0 RSI = 0000000000000000 RDI = 00007fc90717f010
R8 = 0000000000000000 R9 = 0000000000000000
R10 = 0000000000000008 R11 = 0000000000000080
R12 = 00007fc90717f470 R13 = 0000000000000000
R14 = 00007fc8a88dc420 R15 = 00007fc90717fc90
RIP = 00007fc89f96007b EFL = 0000000000010297
CS = 0033 FS = 0000 GS = 0000
Stack Trace (from fault): [ 0] 0x00007fc917c4af49 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwfl.so+00474953 fl::sysdep::linux::unwind_stack(void const**, unsigned long, unsigned long, fl::diag::thread_context const&)+000009
[ 1] 0x00007fc917c00dc1 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwfl.so+00171457 fl::diag::stacktrace_base::capture(fl::diag::thread_context const&, unsigned long)+000161
[ 2] 0x00007fc917c0a0dd /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwfl.so+00209117
[ 3] 0x00007fc917c0a364 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwfl.so+00209764 fl::diag::terminate_log(char const*, fl::diag::thread_context const&, bool)+000100
[ 4] 0x00007fc916c76be5 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00420837 fl::diag::terminate_log(char const*, ucontext const*, bool)+000085
[ 5] 0x00007fc916c73b54 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00408404
[ 6] 0x00007fc916c7503d /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00413757
[ 7] 0x00007fc916c75197 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00414103
[ 8] 0x00007fc916c75b1d /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00416541
[ 9] 0x00007fc916c76435 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00418869
[ 10] 0x00007fc91575ecb0 /lib/x86_64-linux-gnu/libpthread.so.0+00064688
[ 11] 0x00007fc89f96007b /usr/local/lib/libopencv_objdetect.so.2.4+00335995 cv::HOGCache::init(cv::HOGDescriptor const*, cv::Mat const&, cv::Size_<int>, cv::Size_<int>, bool, cv::Size_<int>)+000251
[ 12] 0x00007fc89f960fd8 /usr/local/lib/libopencv_objdetect.so.2.4+00339928 cv::HOGCache::HOGCache(cv::HOGDescriptor const*, cv::Mat const&, cv::Size_<int>, cv::Size_<int>, bool, cv::Size_<int>)+000872
[ 13] 0x00007fc89f9630cb /usr/local /lib/libopencv_objdetect.so.2.4+00348363 cv::HOGDescriptor::compute(cv::Mat const&, std::vector<float, std::allocator<float> >&, cv::Size_<int>, cv::Size_<int>, std::vector<cv::Point_<int>, std::allocator<cv::Point_<int> > > const&) const+000523
[ 14] 0x00007fc8a06ff890 /home/paco/QtSDK/Opencv_to_Matlab/HOG_opencv/HOG_opencv.mexa64+00006288 mexFunction+000499
[ 15] 0x00007fc9107acfaa /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libmex.so+00049066 mexRunMexFile+000090
[ 16] 0x00007fc9107a9f19 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libmex.so+00036633
[ 17] 0x00007fc9107aabbe /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libmex.so+00039870
[ 18] 0x00007fc9169eb7ef /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_dispatcher.so+00391151 Mfh_file::dispatch_fh(int, mxArray_tag**, int, mxArray_tag**)+000511
[ 19] 0x00007fc9164b5a13 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+03381779
[ 20] 0x00007fc9164b617b /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+03383675
[ 21] 0x00007fc9164b6cf4 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+03386612
[ 22] 0x00007fc9163393bf /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01823679
[ 23] 0x00007fc916364aee /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+02001646
[ 24] 0x00007fc916364be3 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+02001891
[ 25] 0x00007fc9164621e9 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+03039721
[ 26] 0x00007fc9162aec1b /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01256475
[ 27] 0x00007fc9162b20ec /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01269996
[ 28] 0x00007fc9162afc7a /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01260666
[ 29] 0x00007fc9162b0741 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01263425
[ 30] 0x00007fc9163097d9 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01628121
[ 31] 0x00007fc9169eb7ef /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_dispatcher.so+00391151 Mfh_file::dispatch_fh(int, mxArray_tag**, int, mxArray_tag**)+000511
[ 32] 0x00007fc9162f21f0 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01532400
[ 33] 0x00007fc916293975 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01145205
[ 34] 0x00007fc9162ad96e /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01251694
[ 35] 0x00007fc9162b20ec /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01269996
[ 36] 0x00007fc9162afc7a /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01260666
[ 37] 0x00007fc9162b0741 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01263425
[ 38] 0x00007fc9163097d9 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01628121
[ 39] 0x00007fc9169eb7ef /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_dispatcher.so+00391151 Mfh_file::dispatch_fh(int, mxArray_tag**, int, mxArray_tag**)+000511
[ 40] 0x00007fc9162e59b2 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01481138
[ 41] 0x00007fc9162a7e13 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01228307
[ 42] 0x00007fc9162a6eb7 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01224375
[ 43] 0x00007fc9162a7397 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwm_interpreter.so+01225623
[ 44] 0x00007fc916eb58fe /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwbridge.so+00108798
[ 45] 0x00007fc916eb64ae /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwbridge.so+00111790 mnParser+000622
[ 46] 0x00007fc916c5ed39 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00322873 mcrInstance::mnParser_on_interpreter_thread()+000041
[ 47] 0x00007fc916c41db2 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00204210
[ 48] 0x00007fc916c41ec0 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00204480
[ 49] 0x00007fc90d570db6 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libmwuix.so+00437686
[ 50] 0x00007fc90d57a13d /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libmwuix.so+00475453
[ 51] 0x00007fc90dfc60bd /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libuij.so+00217277 sysq::during_F<boost::weak_ptr<sysq::ws_ppeHook>, boost::shared_ptr<sysq::ws_ppeHook> > std::for_each<__gnu_cxx::__normal_iterator<boost::weak_ptr<sysq::ws_ppeHook>*, std::vector<boost::weak_ptr<sysq::ws_ppeHook>, std::allocator<boost::weak_ptr<sysq::ws_ppeHook> > > >, sysq::during_F<boost::weak_ptr<sysq::ws_ppeHook>, boost::shared_ptr<sysq::ws_ppeHook> > >(_gnu_cxx::_normal_iterator<boost::weak_ptr<sysq::ws_ppeHook>*, std::vector<boost::weak_ptr<sysq::ws_ppeHook>, std::allocator<boost::weak_ptr<sysq::ws_ppeHook> > > >, _gnu_cxx::_normal_iterator<boost::weak_ptr<sysq::ws_ppeHook>*, std::vector<boost::weak_ptr<sysq::ws_ppeHook>, std::allocator<boost::weak_ptr<sysq::ws_ppeHook> > > >, sysq::during_F<boost::weak_ptr<sysq::ws_ppeHook>, boost::shared_ptr<sysq::ws_ppeHook> >)+000077
[ 52] 0x00007fc90dfc7989 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libuij.so+00223625
[ 53] 0x00007fc90dfc44ae /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/../../bin/glnxa64/libuij.so+00210094 svWS_ProcessPendingEvents(int, int, bool)+000494
[ 54] 0x00007fc916c401c7 /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00197063
[ 55] 0x00007fc916c4060a /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00198154
[ 56] 0x00007fc916c40d6f /usr/local/MATLAB/R2011a/bin/glnxa64/../../bin/glnxa64/libmwmcr.so+00200047
[ 57] 0x00007fc915756e9a /lib/x86_64-linux-gnu/libpthread.so.0+00032410
[ 58] 0x00007fc9154844bd /lib/x86_64-linux-gnu/libc.so.6+00992445 clone+000109
Thanks For your help!!
0 Comments
Answers (0)
See Also
Categories
Find more on Call C++ from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!