【发布时间】:2012-07-23 21:09:29
【问题描述】:
我正在使用 opencv 进行项目。我想从网络摄像头检测形状。我已经通过编辑square.c成功检测到正方形,现在我想使用square.c来检测三角。
是否可以从 square.c 中检测三角形? 我必须添加或修改哪一部分?
编辑
我已尝试添加此代码:
else if ( result->total == 3 &&
fabs ( cvContourArea(result, CV_WHOLE_SEQ)) > 1000 &&
cvCheckContourConvexity(result))
{
s = 0;
for (int i = 0; i < 3; i++)
{
if (i >= 1)
{
t = fabs( angle(
(CvPoint*)cvGetSeqElem(result, i),
(CvPoint*)cvGetSeqElem(result, i-1),
(CvPoint*)cvGetSeqElem(result, i-2)));
s = s > s ? s : t;
}
}
}
结果是,在正方形上检测到的三角形..
【问题讨论】:
-
请提出一个与编程相关的具体问题。
-
显示并解释你到目前为止所尝试的。
-
@PeterMiehle 我尝试在
cvApproxPoly的结果上添加if,但结果是程序检测到正方形=三角形。 -
条件
s > s将始终为假。 -
@JoachimPileborg 我已更改为
s > t,但结果仍然相同。