本文整理汇总了C++中ConvexHull::graham方法的典型用法代码示例。如果您正苦于以下问题:C++ ConvexHull::graham方法的具体用法?C++ ConvexHull::graham怎么用?C++ ConvexHull::graham使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConvexHull
的用法示例。
在下文中一共展示了ConvexHull::graham方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMorphologyConvexhull
void COpenCVInterfaceDlg::OnMorphologyConvexhull()
{
if(mainImage.cols)
{
ConvexHull c;
Mat rez=mainImage.clone();
mainImage=Filters::gaussianFilter(mainImage,1);
Scalar meanVal,stdval;
meanStdDev(mainImage,meanVal,stdval);
Canny(mainImage,mainImage,meanVal.val[0]*1/3.,meanVal.val[0]);
//imshow("contours",mainImage);
vector<std::vector<cv::Point>> contours;
findContours(mainImage,contours,CV_RETR_LIST,CV_CHAIN_APPROX_NONE,Point(2,2));
vector<Point> Points;
//Points.resize(contours.size()*contours[0].size());
for(int i=0;i<contours.size();i++)
{
for(int j=0;j<contours[i].size();j++)
{
Points.push_back(contours[i][j]);
}
}
//for(int i=2;i<mainImage.rows-2;i++)
//{
// for(int j=2;j<mainImage.cols-2;j++)
// {
// if(mainImage.at<uchar>(i,j)==255)
// Points.push_back(Point(i,j));
// }
//}
std::vector<Point> chull;
c.graham(Points, chull);
for(int i=0;i<chull.size()-1;i++)
{
line(rez,chull[i],chull[i+1],Scalar(255,255,255),2);
}
line(rez,chull[chull.size()-1],chull[0],Scalar(255,255,255),2);
prelImage=rez.clone();
ShowResult(prelImage);
}
else
MessageBox("No image loaded");
}