我在我的测试应用程序中成功实现了OpenCV平方检测示例,但现在需要过滤输出,因为它非常混乱 - 或者我的代码是错误的?
我对本文的四个角点感兴趣,以减少偏斜(如此)和进一步处理......
原始图片:
码:
double angle( cv::Point pt1, cv::Point pt2, cv::Point pt0 ) {
double dx1 = pt1.x - pt0.x;
double dy1 = pt1.y - pt0.y;
double dx2 = pt2.x - pt0.x;
double dy2 = pt2.y - pt0.y;
return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);
}
- (std::vector<std::vector<cv::Point> >)findSquaresInImage:(cv::Mat)_image
{
std::vector<std::vector<cv::Point> > squares;
cv::Mat pyr, timg, gray0(_image.size(), CV_8U), gray;
int thresh = 50, N = 11;
cv::pyrDown(_image, pyr, cv::Size(_image.cols/2, _image.rows/2));
cv::pyrUp(pyr, …Run Code Online (Sandbox Code Playgroud) 我必须使用OpenCV编码一个物体探测器(在这种情况下,一个球).问题是,google上的每一次搜索都会返回一些带有FACE DETECTION的内容.所以我需要帮助从哪里开始,使用什么等.
一些信息:
此外,我想使用轮廓在Canny'ed图像上找到圆圈,只需要找到一种方法将轮廓转换为一行数据来教授KNN.
所以...建议?
提前致谢.;)
我使用的程序squares.c的OpenCV库的样本中找到.它适用于每个图像,但我真的无法弄清楚为什么它不能识别该图像中绘制的正方形
http://desmond.imageshack.us/Himg12/scaled.php?server=12&filename=26725680.jpg&res=medium
CANNY之后:http: //img847.imageshack.us/img847/6787/canny.jpg
在DILATE之后:http: //img593.imageshack.us/img593/3010/dilate.jpg
在RESULT图像(红色) http://img267.imageshack.us/img267/8016/resultuq.jpg
如您所见,未检测到方形.
在检测之后,我需要提取广场中包含的区域......没有投资回报率怎么可能?
我试着在窗口中实时绘制形状.形状类似于缠结,矩形,圆形,半圆形或圆形,屏幕中的"Z"使用黄色.尺寸和形状可能与原始图像不同.但程序知道所有原始形状.因为它们是预定义的.我想知道如何识别正确的形状.举个例子,

有可能这样做吗?我可以使用模板匹配吗?请在这件事上给予我帮助..