You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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;
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::FromJS(args[1], 1);
int col = bea::Convert::FromJS(args[2], 2);
THROW_IF_NOT(row > 0, "Invalid row value");
THROW_IF_NOT(col > 0, "Invalid col value");
// 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::ToJS(result);
METHOD_END();
}
(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?
The text was updated successfully, but these errors were encountered:
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
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::FromJS(args[1], 1);
int col = bea::Convert::FromJS(args[2], 2);
THROW_IF_NOT(row > 0, "Invalid row value");
THROW_IF_NOT(col > 0, "Invalid col value");
// 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::ToJS(result);
METHOD_END();
}
(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?
The text was updated successfully, but these errors were encountered: