京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:努比
来源:小白学视觉
今天我们将一起探究如何使用OpenCV和Python从图像中提取感兴趣区域(ROI)。
在之间的文章中,我们完成了图像边缘提取,例如从台球桌中提取桌边。使用了简单的OpenCV函数即可完成这项任务,例如inRange、findContours、boundingRect、minAreaRect、 minEnclosingCircle、circle、HoughLines、line等,都可以。
今天我们的任务是从包含患者大脑活动快照的图像中提取所需的片段。之后可以将该提取的过程应用于其他程序中,例如诊断健康与否的机器学习模型。
因此,让我们从查看输入图像开始。这是由神经科学领域的医疗仪器生成的典型报告,该仪器使用传感器检测来自患者大脑的信号并将其显示为彩色地图。通常,有四张图片,所有图片都描绘了某个特征并一起分析以进行诊断。
本练习的目标图像包含四个大脑图
从上面的图像中,我们只想提取与四个地图(头部扫描)相对应的区域,而将其他所有内容都排除在外。因此,让我们开始吧。
第一步是检测我们要提取的片段的边缘。这是一个多步骤过程,如下所述:
1. 使用“ cvtColor()”将RGB图像转换为灰度
2. 通过应用模糊函数“ GaussianBlur()”来消除灰度图像中的噪声
3. 最后将“ Canny()”函数应用于模糊图像以获得边缘
边缘检测过程的输出如下所示:
使用Canny算法的边缘检测输出
请注意,尽管已识别出脑图片段,但仍有许多不需要的边缘需要消除,并且某些边缘之间有间隙需要封闭。
解决这个问题的一种常用方法是形态转换,它涉及在图像上使用一系列的扩张和腐蚀来去除不需要的边缘和闭合间隙。
我们在多次迭代中使用OpenCV函数“ dilate()”和“ erode()”来获得如下输出。
使用OpenCV对边缘进行了一些增强
如我们看到的那样,边缘现在已经完成并且比以前光滑得多。
现在,我们可以使用OpenCV函数“ findContours()”提取该图像中的轮廓,并仅选择具有以下属性的轮廓:
1. 几何形状是圆形或椭圆形
2. 面积大于某个阈值(在此示例中,值7000可以正常工作)。
对于第一部分,我们将使用OpenCV的“ boundingRect()”检测每个轮廓的边界矩形,并检查纵横比(高宽比)是否接近1。
现在我们的任务已经完成,但还需要进行一些微调。
通常情况是在一个片段上检测到多个重叠的轮廓,而我们只对一个感兴趣。
使用非极大抑制可以解决此问题,即我们查看所有重叠的轮廓,然后选择面积最大的轮廓作为最终候选轮廓。逻辑非常简单,因此我们不需要任何内置的OpenCV或Python函数。
另一个重要的逻辑是分别识别四个部分,即左上,右上,左下和右下。
这也非常简单,涉及识别图像中心坐标以及每个检测到的片段的质心。对段轮廓进行质心检测需要在轮廓上应用OpenCV “ moments()”函数,然后使用以下公式计算中心 X,Y坐标:
center_x,center_y =(int(M [“ m10”] / M [” m00”]),int(M [“ m01”] / M [“ m00”]))
将线段质心坐标与图像中心坐标进行比较,可以将四个线段分别放置在各自的位置。
现在我们已经确定了四个部分,我们需要构建图像蒙版,这将使我们能够从原始图像中提取所需的特征。
我们将使用OpenCV函数“ drawContours()”,将颜色用作白色(R,G,B = 255,2555,255),将厚度用作FILLED(-1)在黑色背景上绘制所有四个线段轮廓。结果如下所示:
用于提取我们的ROI的蒙版
在原始图像上应用此蒙版可以在我们选择的背景(例如黑色或白色)上为我们提供所需的分段。
对于黑色背景,我们创建一个黑色画布,然后使用OpenCV函数“ bitwise_and()”以及先前获得的蒙版在其上进行绘制。
在黑色背景上提取的ROI
对于白色背景,我们首先创建一个白色画布,然后通过使用OpenCV函数“ drawContours()”绘制轮廓为黑色(R,G,B = 0,0,0)且厚度为FILLED的轮廓,如下所示创建颜色反转的蒙版(-1)。
用于ROI提取的备用倒置掩模(图像源作者)
然后,我们使用OpenCV “ add()”函数将此反向蒙版添加到先前获得的黑色背景中,并获得相同的结果,但使用白色背景。
在白色背景上提取的ROI
到此为止,我们总结了几种方法,可以轻松地从图像中提取感兴趣区域。
应当注意,在具有变化的复杂度的其他图像的情况下,上面使用的方法可以进行修改。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
初中毕业想考证,先确认“我能不能报”,再比较证书价值。学历门槛不够的证书,宣传再多也与你无关;能报但对应不上岗位的证书, ...
2026-11-02市场岗确有一批报考不设专业限制的证书,但“不限专业”只解决能不能报,真正决定值不值的是三件事:对应市场岗哪条子路径、招聘 ...
2026-11-02“大学生必考证书有哪些”这个问题,本身就藏着一个需要先拆掉的假设:似乎存在一份人人适用的必考清单。实际上,除了少数与毕业 ...
2026-11-02“最好考的一级证书”这个问题,最容易踩的坑不是选错证书,而是没先弄清“一级”在目标证书体系里到底指什么。有的体系里,一级 ...
2026-11-02“职业证书哪个含金量高”这个问题,很难用一张榜单回答。原因不复杂:证书的“含金量”取决于你拿它做什么。想进入必须持证的行 ...
2026-11-02“证件含金量排名”是搜索量很高的词,但直接给你一份“十大证书排行榜”的文章,基本可以跳过。原因很简单:证书的含金量不是单 ...
2026-11-02在校大专生能考的证书,大体分三类:通用能力类(英语等级、计算机等级、普通话水平测试)、职业技能等级类,以及部分不要求工作 ...
2026-11-02在家闲着想考个证书,最容易踩的坑是先去搜“含金量排行榜”,然后被一堆培训广告牵着走。更稳妥的顺序是反过来的:先看自己属于 ...
2026-11-02“注册类证书”不是一个可以随手列全的清单,它更像一个制度口径:通常指国家职业资格目录中设有注册管理、与执业准入挂钩的资格 ...
2026-11-02“现在考什么证有用”很难有统一答案。同一张证书,对想进会计事务所的人有用,对想做新媒体运营的人可能帮助有限;对需要评职称 ...
2026-11-02“适合女生考的证书有哪些含金量高”,这个问题里藏着两个容易走偏的前提。一是把“女生”当成职业属性,仿佛有一份统一的女性证 ...
2026-11-02先说结论:工商管理专业女生不必追“女生必考”榜单。证书有没有用,取决于它能不能对上你准备投的岗位。比较稳妥的做法,是先在 ...
2026-11-02“什么证好考又实用”这个问题,最怕两种回答:一种是列一堆“通过率高”的证书,却不告诉你考完能干什么;另一种是反过来只谈含 ...
2026-11-02“女士可以考哪些证书”并没有一份统一答案。真正决定你能考什么的,不是性别,而是三件事:你现在的身份(在校、在职还是准备转 ...
2026-11-02大专学历想考运营岗位证书,先给结论:能报的证书不少,但值得考的集中在三类——平台官方运营/投放认证、职业技能等级评价、数 ...
2026-11-02大学生判断一张证书是否重要,不用先看宣传热度,而要看四件事:它是否匹配你的目标岗位,校招时是否真用得上,在校期间是否具备 ...
2026-11-02先把结论说清楚:在校期间以2—4张核心证书为宜,其中1—2张通用底证、1—2张与目标岗位对应的方向证;高壁垒资格证只在符合报考 ...
2026-11-02大学生问证书推荐,最容易掉进的坑是“别人考什么我也考什么”。证书本身没有统一的含金量排序,同一张证,对目标岗位是硬门槛, ...
2026-11-02经管毕业生没有一张“通吃”的证书。比较有用的选择,是先按财会、金融、市场、人力、综合管理几个方向锁定目标岗位,再把证书分 ...
2026-11-02“程序员考什么证书含金量高”,没有放之四海皆准的答案。同样是“高含金量”,对后端开发、云原生工程师、数据开发和安全工程师 ...
2026-11-02