Ask Your Question

BindingError, message: "Cannot pass "0,132,255,0" as a Mat

asked 2019-06-18 11:37:07 -0600

B.C gravatar image

updated 2020-05-03 21:02:28 -0600

supra56 gravatar image

Attempting to use cv.inRange(); to get the select colour pixels in the range based on the following code:


lh = 0; //low hue value
ls = 132; //low saturation value
lv = 255; //low value value

hh = 10;
hs = 255;
hv = 160;

cv.inRange(hsvMat, [lh,ls,lv,0], [hh,hs,hv,0], mask);

The arguments stated on the opencv 4.1.0 documentation show cv.inRange(src,lowerBoundary(mat/scalar),upperBoundary(mat/scalar),dst);


  • src first input array.
  • lowerb inclusive lower boundary array or a scalar.
  • upperb inclusive upper boundary array or a scalar.
  • dst output array of the same size as src and CV_8U type.

    BindingError {name: "BindingError", message: "Cannot pass "0,132,255,0" as a Mat", stack: "BindingError: Cannot pass "0,132,255,0" as a Mat↵ …acking.js-master/examples/opencvtest2.html:451:5)"}

The above error states that the scalar array can not be passed as a Mat, but the documentation says i can pass a scalar array? i've tried removing the "0" in the array as well, the way i've written this has worked in a different part of my code not using cv.inRange();

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted

answered 2020-05-03 17:36:07 -0600

kpachinger gravatar image

the scalar is a mat set to a scalar. so it is a mat, not a scalar. a mat with a scalar.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2019-06-18 11:37:07 -0600

Seen: 1,362 times

Last updated: May 03 '20