Opencv HOGDescriptor -> mexFunction, Matlab crash
Afficher commentaires plus anciens
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!!
Réponses (0)
Catégories
En savoir plus sur Introduction to Installation and Licensing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!