我使用OpenCV编写了一个C程序,可以从实时视频中检测并突出显示任何对象的边缘.但现在我不知道如何从视频中检测到的许多边缘中提取立方体的四个角.所以我在这里寻求帮助.
根据该论文,下一步将是“具有自适应阈值的边缘分割”.
我真的不明白.而且我也不知道如何提取立方体的角落.
我使用的方法的简短摘要如下.
1.从网络摄像头输入
2.应用拉普拉斯滤波器
3.应用霍夫线变换.
我得到以下结果.
码
using namespace std;
using namespace cv;
Mat laplacianFilter(Mat image)
{
Mat hImage;
GaussianBlur(image,hImage,Size(3,3),0,0,BORDER_DEFAULT);
cvtColor(hImage,hImage,CV_RGB2GRAY);
Laplacian(hImage,hImage,CV_16SC1,3,1,0,BORDER_DEFAULT);
convertScaleAbs(hImage,hImage,1,0);
return hImage;
}
Mat hghTransform(Mat image, Mat &image2)
{
Mat lImage;
Canny(image,image,50,200,3);
cvtColor(image,lImage,CV_GRAY2BGR);
vector lines;
HoughLinesP(image, lines, 1, CV_PI/180, 50, 50, 10 );
for( size_t i = 0; i &l