android - Parsing char to vector<float> for hog.setSVMdetector(vector<float>) -


i have problem parsing float char in jni-android application.this sample data :

0.00618567 0.00224441 0.002006603 0.001813437 0.003761207 -0.001850192 -0.001011893 -0.00342476 0.003790586 0.002385935 0.002647488 0.004411637 0.005938921 0.00698391 0.004522655 0.001524881 -0.002673242 -0.0002569943 -0.002495839 0.00230171 0.000844161 0.006387557 0.008135659 0.005583601 0.002238941 -0.001932641 -0.003518643 -0.0006784072 0.001636732 0.001213515 0.0021472 0.004911256 0.003613603 0.001362842 -0.0002172031 -0.002115535 -0.0002000824 0.001085831 0.003149634 0.003899722 0.004865647 0.002436467 0.0001896242 -0.001678405 -0.001909177 -0.002954236 0.001802054 0.003751467 0.004150682 0.005844797 0.002612064 0.003680898 -0.0005450704 -0.002621638 -0.002253087 0.0005009398 0.004602027 0.003445318 0.00632045 0.002706638 -0.001308871 -0.002082631 -0.001821213 -0.0005696003 0.002069579 0.006264412 0.004593662 0.005836432 0.0009420562 -0.003753015 -0.004050847 -0.001744672 -0.002664186 0.00101941 0.004568859 0.003175343 0.005315124 

and type of data vector<float> hog.setsvmdetector(const vector<float>& detector):

0.05359386f, -0.14721455f, -0.05532170f, 0.05077307f, 0.11547081f, -0.04268804f, 0.04635834f, -0.05468199f, 0.08232084f, 0.10424068f, -0.02294518f, 0.01108519f, 0.01378693f, 0.11193510f, 0.01268418f, 0.08528346f, -0.06309239f, 0.13054633f, 0.08100729f, -0.05209739f, -0.04315529f, 0.09341384f, 0.11035026f, -0.07596218f 

this sample code .cpp in jni :

extern "c" jboolean java_com_example_franksyesipangkar_tourguide_camerapreview_imageprocessing (jnienv* env, jobject thiz, jint width, jint height, jbytearray nv21framedata, jintarray outpixels, jbytearray b)  {  logd("jnienv");      //convert jbytearray char     jbyte *cmd = env->getbytearrayelements(b, 0);     logd("jnienvfeature");      //char * feature = (char *)cmd;      char feature[90600];     memset(feature,0, sizeof(feature));     memcpy(feature, cmd, strlen((char*)cmd)); 

in code, data in char feature want parsing data type of data hog.setsvmdetector(const vector<float>& detector).so, have idea ?

maybe can you:

#include <iostream> #include <vector> #include <strstream> #include <string>   std::vector<float> parse_delimeted_list_of_numbers(char* line, char delimeter) {     std::vector<float> vector_of_numbers;     std::istrstream input_stream(line);     std::string text;     float number;     while (std::getline(input_stream, text, delimeter)) {         sscanf_s(text.c_str(), "%f", &number, text.size());         vector_of_numbers.push_back(number);     }     return vector_of_numbers; }  // program test above function works int _tmain(int argc, _tchar* argv[]) { //  auto vector_of_numbers = parse_delimeted_list_of_numbers("234.0, 345, 465, 46456.0",',');     auto vector_of_numbers = parse_delimeted_list_of_numbers("234.0 34 465 46456.0", ' ');     (auto number : vector_of_numbers)         std::cout << number << "\n";     return 0; } 

Comments

Popular posts from this blog

c++ - llvm function pass ReplaceInstWithInst malloc -

Cross-Compiling Linux Kernel for Raspberry Pi - ${CCPREFIX}gcc -v does not work -

java.lang.NoClassDefFoundError When Creating New Android Project -