我尝试用Canny边缘检测算法来找出一个简单圆的边缘。
cv:: Canny() 函数返回
cv::Mat edge 但我不知道如何利用这些“优势”。
我的目标是将“边缘”绘制回原始图像,并读取该边缘内的信息(在这种情况下,边缘是一个圆)。
我查看cv::read函数,只找到不是边的drawContour函数。
我也不知道如何找到边的坐标,这样我就可以对圆边的内部部分做些什么。
我是openCV的新手,任何建议都很感激。
发布于 2017-07-10 06:31:18
edges是与源图像相同大小的数组(Mat),它包含Canny函数发现的边缘的零像素和最大值(255)像素。
您可以强调边缘在源图像(白色),使bitwise_or操作与边缘(在我的)。或将边缘转换为彩色图像以绘制彩色边缘。这里是使用边缘作为掩码的例子。
边缘是光栅的结果。要获取段集,可以在findContours上使用edges函数,然后可以使用drawContours
请注意,这一信息是很好的谷歌。
发布于 2017-07-10 06:44:34
您需要学习如何遍历cv::Mat对象。Images.html#高效的方式
此外,我建议你读几个章节的书学习opencv,以掌握这个图书馆的基本用途,现在有第三版。您还可以在“InstallPath\opencv\source\samples”和官方教程:http://docs.opencv.org/2.4/doc/tutorials/tutorials.html中找到许多示例。
https://stackoverflow.com/questions/45004760
复制相似问题