当前位置: 首页 > news >正文

双滦网站建设工业设计参考网站

双滦网站建设,工业设计参考网站,网站二级域名怎么设置,网站添加关键字文章目录 导言findContours函数的作用函数原型原理分析 应用场景代码示例结语 导言 在计算机视觉领域#xff0c;图像处理是一项重要的任务。而在图像处理的过程中#xff0c;轮廓#xff08;Contours#xff09;的提取是一项基础且关键的操作。OpenCV库中的findContours函… 文章目录 导言findContours函数的作用函数原型原理分析 应用场景代码示例结语 导言 在计算机视觉领域图像处理是一项重要的任务。而在图像处理的过程中轮廓Contours的提取是一项基础且关键的操作。OpenCV库中的findContours函数就是用于找到图像中的轮廓的工具之一。本文将深入介绍findContours函数的作用、原理、应用场景并结合C和OpenCV提供一些简单的示例代码方便读者入门。 findContours函数的作用 findContours函数的主要作用是在二值化图像中找到轮廓这些轮廓是由相邻的像素组成的对象的边界。该函数能够识别并返回图像中所有的轮廓并以一种易于处理的数据结构存储。 findContours函数详解 findContours是OpenCV中用于在二值化图像中查找轮廓的函数之一。下面详细介绍该函数的原型及参数作用。 函数原型 void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset Point());参数说明 image输入输出参数是二值化的源图像。在函数执行后该图像可能会被修改以强调轮廓。注意输入图像必须是8位单通道图像。 contours输出参数存储找到的轮廓的容器。它是一个向量的向量vectorvector每个元素都代表一个轮廓其中每个Point表示轮廓上的一个点。 hierarchy输出参数用于存储轮廓的层级信息。它是一个向量每个元素包含了关于一个轮廓的层级关系包括下一个轮廓、上一个轮廓、子轮廓和父轮廓的索引。 mode表示轮廓的检索模式是一个整数值。常见的模式有 RETR_EXTERNAL只检索最外层的轮廓。 RETR_LIST检索所有轮廓并存储为列表。 RETR_CCOMP检索所有轮廓并组织为两层的层级结构。 RETR_TREE检索所有轮廓并完整重构轮廓层级。 method表示轮廓的逼近方法同样是一个整数值。常见的方法有 CHAIN_APPROX_NONE存储所有的轮廓点不进行任何压缩。 CHAIN_APPROX_SIMPLE压缩水平、垂直和对角方向只保留终点。 CHAIN_APPROX_TC89_L1和CHAIN_APPROX_TC89_KCOS应用 Teh-Chin 链逼近算法。 offset可选参数表示轮廓中所有点的偏移。默认为Point()即无偏移。 函数作用 findContours函数的主要作用是根据给定的模式和方法在二值化图像中找到并提取轮廓。以下是各参数的作用 image作为输入传入函数的二值化图像。 contours作为输出包含找到的轮廓信息。 hierarchy作为输出包含了轮廓之间的关系信息如子轮廓、父轮廓等。 mode决定了轮廓的检索模式即找到哪些轮廓。 method决定了轮廓的逼近方法即如何表示轮廓的形状。 offset可选参数用于指定轮廓中所有点的偏移。 通过使用findContours函数我们可以方便地在图像中定位并提取感兴趣的对象轮廓为后续的图像处理和分析提供了基础。 原理分析 findContours函数的工作原理主要基于图像的边缘检测和连接分析。它的实现步骤可以概括为以下几个步骤 图像预处理首先输入图像通常需要进行二值化处理将图像转换为黑白两色以便更容易检测轮廓。 边缘检测利用一些边缘检测算法如Sobel、Canny等找到图像中的边缘。 轮廓查找根据边缘信息找到轮廓的起点并按照一定规则遍历整个轮廓将轮廓上的点存储起来。 轮廓连接将相邻的轮廓点连接成完整的轮廓。 存储结果将找到的轮廓以一种数据结构通常是向量存储以便后续使用。 应用场景 findContours函数在许多计算机视觉任务中都得到广泛应用例如 目标检测用于识别图像中的物体轮廓从而进行目标检测。 图像分割通过轮廓提取可以将图像分割成不同的区域有助于进一步的分析。 手写体识别在手写体数字或字符识别中findContours可以用于提取数字的轮廓。 医学图像分析在医学图像中该函数可用于分割和分析组织结构。 代码示例 使用C与OpenCV写代码 以下是一个简单的C代码示例演示了如何使用OpenCV的findContours函数来查找并绘制图像中的轮廓 #include opencv2/opencv.hpp #include iostreamusing namespace cv; using namespace std;int main() {// 读取图像Mat image imread(example.jpg, IMREAD_GRAYSCALE);if (image.empty()) {cerr Unable to read the image endl;return -1;}// 二值化图像Mat binaryImage;threshold(image, binaryImage, 128, 255, THRESH_BINARY);// 查找轮廓vectorvectorPoint contours;vectorVec4i hierarchy;findContours(binaryImage, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);// 绘制轮廓Mat contourImage Mat::zeros(image.size(), CV_8UC3);drawContours(contourImage, contours, -1, Scalar(0, 255, 0), 2);// 显示原始图像和带有轮廓的图像imshow(Original Image, image);imshow(Contours, contourImage);waitKey(0);return 0; }在这个示例中首先读取一幅灰度图像然后通过二值化处理。接着使用findContours函数找到图像中的轮廓最后使用drawContours函数将轮廓绘制在一张空白图像上。最终通过OpenCV的imshow函数显示原始图像和包含轮廓的图像。 结语 通过findContours函数我们能够方便地在图像中找到并提取出对象的轮廓为后续的图像处理和分析提供了基础。希望通过本文的介绍和代码示例读者能够更好地理解并运用这一强大的函数。
http://www.huolong8.cn/news/329128/

相关文章:

  • 做网站要哪些技术国内体育新闻最新消息
  • php企业网站开发实训报告网站备案表格下载
  • 效果图网站排行榜前十名杭州软装公司排名前十强
  • 如何查找昆明公司的网站wordpress fatal error
  • 我做的网站在手机里滑动怎么这里卡河北做it的网站
  • 二级域名网站怎么做外贸公司需要什么资质
  • 国外英语写作网站大连微信网站开发
  • 徐州网站开发如何景观设计理念
  • 完整域名展示网站源码软件页面设计用哪个软件比较好
  • 网站建设公司新员工培训ppt模板怎么在百度打广告
  • 网站域名邮箱怎么注册服装设计师参考的网站
  • 南浔建设局网站天津网站制作网页
  • 建微信网站wordpress请求排除
  • 室内设计招标网站做网站用什么源码好
  • 电器网站建设规划书wordpress 多后端
  • 南充网站开发唐山营销型网站建设
  • 台州网站建设网站推广成都网站建设司
  • win2012服务器网站建设广告设计公司核心优势
  • wordpress搜索过滤怀化网站优化哪里有
  • 制作网站公司网址邵武网站建设
  • 沈阳企业黄页免费哈尔滨做网站优化
  • 做视频的教学直播网站网站建设的困难
  • 做网站和app多少费用怎么样把网站做火
  • 深圳网站建设优化czzhwmwordpress生成微信小程序
  • 班级网站 php如何查看网站的空间
  • 石家庄建站模板源码wordpress更换主题菜单
  • 如何自己做的网站外包软件开发
  • 2017最新网站设计风格重庆网站建站价格
  • 佛山网站建设推广厂商排名seo网站排名推广
  • 哪里有网站开发培训小程序怎么开