opencv-node
opencv-node copied to clipboard
calculating histogramm
My next try was to add a @manual declaration to the legacy cv.mGet function, which is an INLINE declaration in opencv-src/modules/core/include/opencv2/core/types_c.h as:
CV_INLINE double cvmGet( const CvMat* mat, int row, int col ) { int type;
type = CV_MAT_TYPE(mat->type); assert( (unsigned)row < (unsigned)mat->rows && (unsigned)col < (unsigned)mat->cols );
if( type == CV_32FC1 ) return ((float_)(mat->data.ptr + (size_t)mat->step_row))[col]; else { assert( type == CV_64FC1 ); return ((double_)(mat->data.ptr + (size_t)mat->step_row))[col]; } }
my try on the bea declaration to expose the method in opencv_manual.cpp:
v8::Handlev8::Value JOpenCV::mGet(const v8::Arguments& args) {
METHOD_BEGIN(1);
//float mGet(const Mat* mat, int row, int col)
//TODO: Enter code here
cv::Mat* mat = bea::Convertcv::Mat*::FromJS(args[0], 0);
int row = bea::Convert
// float or double?
float* ptr = (float_)(mat->data + (size_t)mat->step_row);
// i get negative values too -> obviously wrong pointer/bad value for color...
float result = ptr[col];
return bea::Convert
(as You can see i'm still no good at all in CPP / v8)
What values use this v8 port for storing colors? Floats, doubles, uchars?
cvmGet seems to be an older C-Style interface to opencv.
If I'm not mistaken, you should use Mat::at
I'm currently working on calcHist and all the required dependencies, including the Mat::at() function and I should soon have an update ready.
Just commited a new version of opencv-node, which includes cv.calcHist implementation and an example in the scripts directory. Let me know if that works for you