Tem*_*mer 9 c++ opencv contour
我需要使用OpenCV计算灰度图片中的斑点/对象的面积(将其加载为Mat,而不是IplImage).我认为获取边缘的坐标(边缘数量从对象变为对象)或获取轮廓的所有坐标然后用于contourArea()计算对象的面积是个好主意.
我删除了所有的噪音,并通过使用findContours()(在C++中编程)获得了一些漂亮和令人满意的轮廓.
findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy,int mode, int method, Point offset=Point());
Run Code Online (Sandbox Code Playgroud)
现在我明白了param contours已经拥有了我对象的所有轮廓的坐标.我做对了吗?
如果是的话,它有办法访问它们吗?
如果不是,我怎么得到轮廓的坐标呢?
Sam*_*Sam 24
contours 实际上定义为
vector<vector<Point> > contours;
Run Code Online (Sandbox Code Playgroud)
现在我认为很清楚如何获得它的观点.
轮廓区域由一个很好地称为的函数计算contourArea():
for (unsigned int i = 0; i < contours.size(); i++)
{
std::cout << "# of contour points: " << contours[i].size() << std::endl;
for (unsigned int j=0; j<contours[i].size(); j++)
{
std::cout << "Point(x,y)=" << contours[i][j] << std::endl;
}
std::cout << " Area: " << contourArea(contours[i]) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29210 次 |
| 最近记录: |