OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

这篇具有很好参考价值的文章主要介绍了OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本周有机会接触了一点opnev, 在此做一下记录, 最终以框选出下图箱子为目的(图片箱子为相机实拍结果,曝光有点低,会有亿点点暗 ), 本文会拆解步骤并附上图片, 完整的源码在最后.PS:本文参考了好多大佬分享的理论知识, 在此先感谢大佬的分享~~

OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

首先是梳理一下流程, 下图是本次图片处理的大概流程和部分效果图以及部分会用到的算子~~

OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

1.图像读取

图像读取可以直接使用如下模块读取直接路径的图片:

但如果预处理图片较多, 需要从文件夹循环读取处理的话可以用如下模块,只需更改文件夹地址以及文件命名格式就行, 这里我文件夹里的图片名字均为"1.png"这样的格式:

2.提取需要处理的roi区域

这里的示例是拍照空间区域中存在一个托盘, 托盘上方有预提取的箱子, 所以需要建立托盘的roi区域, 之后只单独对这个区域进行处理, 这样可以排除干扰项~

3.灰度处理

这一步转成灰度图, 并进行阈值提取,方便之后提取

4.灰度处理

这里的腐蚀是为了将阈值分割之后的部分噪声去除, 膨胀是为了还原上一步被删除了的特征点,偷个懒用上面的图了哈~其实这一步就和直接用闭运算是一样的, 但是为了能看出过程的变换我就拆分开了.

OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

5.提取连通区域并删除其中面积较小的区域

6.筛选出面积较大的区域部分 并绘制矩形 框选出箱子轮廓

这一块的逻辑就是第一次筛选掉小面积区域后, 对剩下的区域再进行一次筛选,这次筛选面积较大的区域, 并对每一个面积大的区域进行单独绘制出轮廓, 并将这个轮廓点集用minAreaRect算子, 输入点集输出四个点的坐标, 并将这四个点用直线连接起来, 就可以得到结果了~

OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

7.全部源码

至此, 本次分享的箱子提取过程完结, 图片处理其实很吃图片的像素分布情况 ( 是否有过亮过暗, 是否反光, 是否有噪声, 是否清晰等 ) , 比如本次图片就是属于较暗的情况, 在阈值分割的时候就很头疼, 用了自适应阈值和直方图阈值分割的方式, 但效果并不是很理想 ,最终还是手动给了阈值, 而且干扰项也蛮多的, 处理方式还是比较简单和基础, 最后再附一张轮廓检测的结果图 , 效果其实也还行 . 比如图片17 , 原图是三个箱子堆叠在一起 , 但是轮廓补全后还是把箱子轮廓框选出来了.

OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

这里单独提一下,在VS的"工具"→"拓展和跟新"里可以找到"Image Watch 2017"插件,可以用来查看图片的具体像素点,在阈值处理的时候会很有用文章来源地址https://www.toymoban.com/news/detail-471540.html

OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

到了这里,关于OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab|图像处理04|图像分割-阈值分割方法

    一、人工阈值分割方法threshold_test1.m 1、分析修改阈值对分割结果的影响 分析:取直方图中第一个谷底的灰度值作为阈值,图像分割效果较好。当阈值改变时,分割后的图像有部分信息丢失,本图中当阈值减小时分割后的图像黑色部分较多,当阈值增大时分割后的图像白色部

    2024年02月11日
    浏览(30)
  • OpenCV中的图像处理 —— 霍夫线 / 圈变换 + 图像分割(分水岭算法) + 交互式前景提取(GrabCut算法)

    🌎上一节我们介绍了OpenCV中傅里叶变换和模板匹配,这一部分我们来聊一聊霍夫线/圈变换的原理和应用、使用分水岭算法实现图像分割和使用GrabCut算法实现交互式前景提取 🏠哈喽大家好,这里是ErrorError!,一枚某高校大二本科在读的♂同学,希望未来在机器视觉领域能够有

    2023年04月08日
    浏览(32)
  • OpenCV数字图像处理基于C++:图像分割

    图像阈值化分割是一种常用的、传统的图像分割技术,因其 实现简单、计算量小、性能比较稳定 而成为图像分割中基本和应用广泛的分割技术。特别 适合于目标和背景占据不同灰度级范围的图像 。不仅 可以极大地压缩数据量 ,而且大大 简化了分析和处理的步骤 ,是进行

    2024年02月11日
    浏览(44)
  • Matlab图像处理-多阈值分割

    多阈值分割 在某些时候图像使用单独的阈值不能够对其实现有效地分割,例如在灰度直方图中有明显的三个峰时候,我们需要提取中间峰,这时我们使用双阈值分割会得到较好的分割效果。如下例子中生成灰度直方图中有两个峰,选择合适的两个阈值进行多阈值分割后可生成

    2024年02月09日
    浏览(36)
  • 图像分割---基于阈值处理的基本方法

    本文主要介绍图像分割基于阈值处理的一些基本方法。 该方法基于图像直方图上出现的双峰现象。当一个图像有双峰现象时,其直方图会出现两个峰,分别对应图像中两种不同的颜色或亮度区域。这时我们可以使用直方图双峰法来自动确定合适的阈值。其基本思路如下: 计

    2024年02月05日
    浏览(29)
  • 图像处理与计算机视觉--第五章-图像分割-自适应阈值分割

      在图片处理过程中,针对铺前进行二值化等操作的时候,我们希望能够将图片相应区域内所有的信息提供保留。实验室环境下,相应的素材是模板化的,但是将实验室方法应用于现实环境中时,我们会发现光影环境对于效果的影响其实是很大的。在这种情况下进行处理,

    2024年02月07日
    浏览(35)
  • (数字图像处理MATLAB+Python)第十章图像分割-第一、二节:阈值分割和边界分割

    图像分割 :在对图像的研究和应用中,人们往往仅对图像中的某些目标感兴趣,这些目标通常对应图像中具有特定性质的区域。图像分割是指把一幅图像分成不同的具有特定性质区域的图像处理技术,将这些区域分离提取出来,以便进一步提取特征和理解 图像分割方法多种

    2024年02月16日
    浏览(38)
  • 入门OpenCV:图像阈值处理

    图像阈值是一种简单、高效的图像分割方法,目的是将图像转换成二值图像。这个过程涉及比较像素值和阈值,根据比较结果来确定每个像素点的状态(前景或背景)。图像阈值在处理二维码、文本识别、物体跟踪等领域中非常有用。本博客旨在简介OpenCV中的阈值处理方法,

    2024年02月19日
    浏览(33)
  • opencv(三)边界填充、图像融合、图像阈值处理

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 边界填充就是将图片按一定的方法将图片的四周向外填充并将图片放大 因为opencv中的颜色通道不是RGB而是BGR,所以我们要用到之前讲到的分割将颜色通道重新整合成RGB后再用matplotlib库将其画出 BORDER_R

    2024年02月21日
    浏览(41)
  • [图像处理]14.分割算法比较 OTSU算法+自适应阈值算法+分水岭

    参考文献: OTSU阈值分割+孔洞填充+海陆分离_SwordKii的博客-CSDN博客 drawContours函数_普通网友的博客-CSDN博客_drawcontours R329-opencv阈值分割算法——自适应阈值_Third Impact的博客-CSDN博客_opencv自适应阈值分割 分水岭算法的python实现及解析_进不去的博客-CSDN博客_python分水岭算法 分水

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包