opencv中以下代码行的含义是什么?
此代码行意味着什么,以及如何将此代码转换为javacv?opencv中以下代码行的含义是什么?
gray = Scalar::all(255);
这是与此代码行有关的整个代码。
Mat src = imread("in.jpg"), gray;
cvtColor(src, gray, CV_BGR2GRAY);
threshold(gray, gray, 230, 255, THRESH_BINARY_INV);
vector<Vec4i> hierarchy;
vector<vector<Point> > contours;
findContours(gray, contours, hierarchy, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
gray = Scalar::all(255);
请问可以解释一下吗?
正如我在我的评论中提到,它是用来在灰度图像设置为白色。
它有什么好处?只有当我们知道这个代码是什么或者看到完整的代码时才可以这样说。
关于Java,OpenCV现在有一些android样本,你可以在其中找到Java代码。
您可以检查它们。 I saw a similar function there:mWhilte = Scalar.all(255);
同时检查JavaCV样本:http://code.google.com/p/javacv/wiki/OpenCV2_Cookbook_Examples_Chapter_2
突出显示的代码行将灰色设置为255.它是OpenCV中将矩阵设置为值时可用的方法之一。
其他的方式来做到这一点是:
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.
但我认为问题是,为什么findfContours在此之后源线...
根据该文档,findContours修改它正在对图像(它提取一个轮廓,然后进入下一个轮廓,直到没有轮廓)。结果是垃圾图像(可能是黑色)。
因此,set-to-255行将其清除以供其他用途。
的Mat::setTo()
方法也应该可以在JavaCV,所以你不应该有问题,将其转换成Java
是0还是255? – 2012-07-11 06:04:38
请你能给这个简单的代码示例吗? – NadLnk 2012-07-11 06:04:42
什么是这个代码吗? – 2012-07-11 05:55:18
用于查找图像中的轮廓,并且在此之后还有一些代码 – NadLnk 2012-07-11 06:00:05
我认为该线条会使灰色完成白色。如果你可以运行cpp代码,运行它并在最后显示灰色。 – 2012-07-11 06:01:11