我有一个外部轮廓近似var strDateTime = "2017-01-05T15:03:25.21"+"-08:00";
var myDate = new Date(strDateTime);
函数,称为CV::approxPoyDP()
。现在,我想使用这个近似轮廓“掩盖”另一个图像approxPolygon
。我们的想法是找到这个“近似轮廓”之外的所有像素,并将像素值重置为0.这样,所需ROI之外的所有区域都是黑色的。
但是我在使用函数edge
时遇到了麻烦。当我尝试遍历图像以返回bool值以查看给定点是否在给定的近似轮廓之内或之外时,该函数始终返回CV::pointPolyTest();
。
这是我的代码的一部分。
false
edge是需要使用轮廓'approxPolygon'掩盖的图像。
segments = ImageSegment::Image[7];
edge = ImageSegment::detectEdges(segments);
由于某种原因,此代码的输出将边缘的所有像素设置为零,基本上是黑屏图像。我的代码有什么问题? for (int row; row <= edge.rows; row++)
{
for (int col; col < edge.cols; col++)
{
if(!pointPolygonTest(approxPolygon, Point2f(float(row), float(col)), false))
{
edge.at<float>(row,col) = 0;
}
}
}
是否记录在案?谢谢。