What is the meaning of following code line in opencv?

前端 未结 2 647
盖世英雄少女心
盖世英雄少女心 2021-02-06 12:44

What does this code line means and how can I convert this code into javacv?

gray = Scalar::all(255);

This is whole code which related to this

相关标签:
2条回答
  • 2021-02-06 13:29

    As I mentioned in my comment, it is used to set the gray image to white.

    What is its benefit? It can be said only if we know what is this code for or see the full code.

    Regarding Java, OpenCV has now some android samples, in which you can find Java codes.

    You can check them. I saw a similar function there : mWhilte = Scalar.all(255);

    Also check the JavaCV samples : http://code.google.com/p/javacv/wiki/OpenCV2_Cookbook_Examples_Chapter_2

    0 讨论(0)
  • 2021-02-06 13:35

    The highlighted code line sets gray to 255. It is one of the methods avaliable in OpenCV to set a matrix to a value.

    Other ways to do it are:

    gray.setTo(255); // prior to 2.3.1 it was a buggy on multichannel images
    gray = 255; // prior to 2.3.1 it was a buggy on multichannel images
    
    gray.setTo(Scalar::all(255)); // it works regardless the OpenCV version.
    

    But I think the question is why this source line after findfContours...

    According to the docs, findContours modifies the image it is working on (it extracts a contour, deteles it, then proceed to the next one, until there are no more contours). The result is a garbage image (probably black).

    So, the set-to-255 line clears it up for some other use.

    The Mat::setTo() method should also be available in JavaCV, so you should not have problems converting it to Java

    0 讨论(0)
提交回复
热议问题