Ask Your Question

Strange Assert in setTo

asked 2012-11-30 05:08:10 -0600

Jeff gravatar image

Hi there,

I was doing some basic image processing and I used a Mat of type CV_8UC3 as a mask. Apparently this is incorrect, so the program failed on a OpenCV assert. So far no problem, just my misinterpretation.

But here's the issue: I read the assert to find out what I did wrong, and it has a strange comparison: mask.empty() || mask.type() == CV_8U

The type of the mask is compared to a depth... Although the comparison is equivalent to mask.type() == CV_8UC1, it's confusing for a simple user...

So my question is: is this a bug? Should I report it?

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2012-12-03 15:08:12 -0600

AlexanderShishkov gravatar image

It is not a bug, because CV_8U = CV_8UC1=0, but it leads to misinterpretation. You should report about this problem on our bug tracker (

But the best way is to create pull request with fix for this problem.

edit flag offensive delete link more

answered 2012-11-30 05:23:02 -0600

wl2776 gravatar image

Looks like a bug. Report, of course.

According to reference manual (opencv2refman.pdf, page 35), values like CV_8U or CV_8S, or CV_16U, etc, are returned from Mat::depth().

Mat::type() returns a constant, having number of channels, like CV_8UC3

edit flag offensive delete link more

Question Tools


Asked: 2012-11-30 05:08:10 -0600

Seen: 638 times

Last updated: Dec 03 '12