Python-OpenCV选择、提取感兴趣区域(ROI区域)
Python-OpenCV选择、提取感兴趣区域(ROI区域)
在图像处理中,我们常常要对某个区域进行选择、提取,然后对这个区域进行单独分析、处理、显示。
这样的区域我们称为叫ROI区域,英文全称为Region of interest,中文名为“感兴趣区域”。
在Python-OpenCV中,图像数据是存储于ndarray对象中的,通常使用ndarray对象的切片操作或索引操作实现选择、提取ROI区域。
关于ndarray对象的切片操作,可以参考我之前的博文 https://www.hhai.cc/thread-117-1-1.html
关于ndarray对象的索引操作,可以参考我的下面两篇博文
对Numpy库ndarray对象(矩阵)中数据元素的访问、选取操作示例
将ndarray对象的数据按索引矩阵进行选取的几种方法
接下来,用几个示例,抛砖引用地讲述“Python-OpenCV选择、提取感兴趣区域(ROI区域)”的问题。
目录
- 示例一:通过“=”和索引实现ROI区域的浅拷贝
- 示例二:通过成员函数copy()实现ROI区域的深拷贝
- 示例三:通过切片操作将矩阵的ROI区域替换为另一矩阵的值(深拷贝)
示例一:通过“=”和索引实现ROI区域的浅拷贝
现有矩阵A1,大小为7×7,我要选取其0到3行,0到2列的ROI区域,可以用“=”和索引实现ROI区域的浅拷贝。
示例代码如下:
import numpy as npA1 = np.zeros((7, 7), dtype='uint8')
# 通过“=”和索引实现ROI区域的浅拷贝
B2 = A1[0:4, 0:3]
B2[1, 1] = 1
运行结果如下:
示例二:通过成员函数copy()实现ROI区域的深拷贝
现有矩阵A1,大小为7×7,我要选取其0到3行,0到2列的ROI区域,可以用成员函数copy()实现ROI区域的浅拷贝。
示例代码如下:
import numpy as npA1 = np.zeros((7, 7), dtype='uint8')# 通过“=”和索引实现ROI区域的浅拷贝
B1 = A1[0:4, 0:3]# 通过函数copy()实现ROI区域的深拷贝
C1 = B1.copy()C1[1, 1] = 1
运行结果如下图所示:
说明:因为是深拷贝,C1并不与A1和B1共用存储区,所以C1值的改变并不会影响A1和B1。
示例三:通过切片操作将矩阵的ROI区域替换为另一矩阵的值(深拷贝)
代码如下:
import numpy as np
A1 = np.zeros((7, 7), dtype='uint8')
B1 = np.ones((3, 3), dtype='uint8')
A1[1:4, 1:4] = B1
运行结果如下:
上面的结果看不出是深拷贝还是浅拷贝,我们加一条语句就知道了:
import numpy as np
A1 = np.zeros((7, 7), dtype='uint8')
B1 = np.ones((3, 3), dtype='uint8')
A1[1:4, 1:4] = B1B1[1, 1] = 0
运行结果如下:
从上面的运行结果可知,语句:
A1[1:4, 1:4] = B1
可见实现的是把A1中的子区域的值替换为矩阵B1中的值,而并不是把A1中的子区域的存储空间和B1共享。
Python-OpenCV选择、提取感兴趣区域(ROI区域)相关推荐
- OpenCV python(二)图像预处理:改变图像大小 提取感兴趣区域
OpenCV python(二)图像预处理:改变图像大小 && 提取感兴趣区域 一.改变图像大小 1.获取图像宽.高.通道数 2.resize函数 3.案例 二.ROI感兴趣区域 1. ...
- ITK:在一幅图像中提取感兴趣区域ROI
ITK:在一幅图像中提取感兴趣区域ROI 内容提要 输出结果 C++实现代码 内容提要 在给定图像中提取给定的关注区域(ROI) 输出结果 C++实现代码 #include "itkImag ...
- 提取图像感兴趣区域_从图像中提取感兴趣区域
提取图像感兴趣区域 Welcome to the second post in this series where we talk about extracting regions of intere ...
- python二值化 感兴趣区域_Python+OpenCV感兴趣区域ROI提取方法
方法一:使用轮廓 步骤1 """src为原图""" ROI = np.zeros(src.shape, np.uint8) #感兴趣区域RO ...
- OpenCV-C++选择、提取感兴趣区域(ROI区域)【附用鼠标选取ROI区域的代码】
在图像处理中,我们常常要对某个区域进行选择.提取,然后对这个区域进行单独分析.处理.显示. 这样的区域我们称为叫ROI区域,英文全称为Region of interest,中文名为"感兴趣区 ...
- python opencv轮廓提取_Python + Opencv2 实现轮廓提取,轮廓区域面积计算
对图像处理时,会遇到这样一个场景:找到图像主体轮廓,这是其一,可能为了凸显轮廓,需要用指定的颜色进行标记:轮廓标记完可能任务还没有结束,还需对轮廓所勾勒的像素面积区域统计计算. 本篇文章的主要内容就是 ...
- MATLAB提取感兴趣ROI
一 代码 Image0=imread('MER-500-7UM(RQ0002001015)_2017-11-14_10_09_59_790-99.bmp');%--感兴趣区域ROI c=[300,67 ...
- Python+Opencv寻找图像中最亮的区域
目录 一.场景需求解读 二.算法原理简介 三.算法代码实现 四.代码运行步骤 五.算法效果展示和分析 六.思维扩展 参考资料 注意事项 一.场景需求解读 在有些现实场景中,我们需要去使用算法自动的 ...
- 【图像处理】——Python+opencv实现提取图像的几何特征(面积、周长、细长度、区间占空比、重心、不变矩等)
转载请注明详细地址 本文简单介绍了图像常见几何特征的概念以及求解方法 本文介绍了Python和opencv求解几何特征的常用方法 目录 其他形状外接轮廓的方法可以参考:<OpenCV-Pytho ...
最新文章
- SpringCloud之Feign源码分析
- html文件最后一行文字,文本多行溢出显示...之最后一行不到行尾的解决
- android studio panic,Android Studio模拟器PANIC错误
- python反射详解
- HTTPs 相关的东西
- saltstack自动化运维系列②之saltstack的数据系统
- java 多态判断非空_Java 面试知识点解析基础知识
- 不知道哪个学校教务处管理系统的图
- VMware中linux硬盘空间不足的解决方法
- SQL Server 日志数据库清理办法
- 大整数相乘python fft_Python带你理解用于信号同步的CAZAC序列
- GNS 3路由器7200介绍
- 国土空间用途管制制度构建的思考
- 苹果电脑为什么要换 CPU:Intel 与 ARM 的战争
- 2017 我所分享的技术文章总结(下)
- Python模拟屏幕点击自动完成词达人任务(附源码)
- 使用gitbook记录笔记
- 集成电路设计学习笔记(二)基于IC617反相器设计之原理图绘制
- 【大数据开发】FlinkSQL实战
- python拨号_python实现电脑自动拨号换ip(pppoe)