OpenCV入门九:使用findContours()查找图片轮廓线,并将轮廓线坐标点输出

使用findContours()查找图片轮廓线,并将轮廓线坐标点输出,访问二维vector,使用迭代器和下标两种方式

#include  
#include 
#include 
#include  
#include 
#include 
#include 
using namespace cv; 
using namespace std;
int main() 
{ 
	//载入原始图,且必须以二值图模式载入
	Mat M=imread("E:/A.bmp",0);
	imshow("原始图",M);

	waitKey(500); //等待5000ms后窗口自动关闭
	//初始化结果图
	Mat dstImage=Mat::zeros(M.rows,M.cols,CV_8UC3);

	//M提取阈值小于250的部分
	M=M<250;
	imshow("阈值",M);
	waitKey(50);
	//定义轮廓和层次结构
	vector>contours;
	vectorhierarchy;
	findContours(M,contours,hierarchy,RETR_EXTERNAL,CHAIN_APPROX_NONE);
	//迭代器输出
	/*for (vector>::iterator it=contours.begin();it!=contours.end();++it)
	{
		for (vector::iterator inner_it=it->begin();inner_it!=it->end();++inner_it)
		{
			cout<<*inner_it<=0;index=hierarchy[index][0])
	{
		Scalar color(rand()%255,rand()%255,rand()%255);
		drawContours(dstImage,contours,index,color,1,8,hierarchy);
	}

	imshow("轮廓图",dstImage);
	waitKey(5000); //等待5000ms后窗口自动关闭
	getchar();
}

OpenCV入门九:使用findContours()查找图片轮廓线,并将轮廓线坐标点输出_第1张图片

你可能感兴趣的:(C++,OpenCV)