Python+OpenCV感兴趣区域ROI提取方法

yipeiwu_com7年前Python基础

方法一:使用轮廓

步骤1

"""src为原图"""
ROI = np.zeros(src.shape, np.uint8)   #感兴趣区域ROI
proimage = src.copy()     #复制原图
"""提取轮廓""" 
proimage=cv2.cvtColor(proimage,cv2.COLOR_BGR2GRAY)          #转换成灰度图
proimage=cv2.adaptiveThreshold(proimage,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,7,7)            
proimage,contours,hierarchy=cv2.findContours(proimage,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_NONE) #提取所有的轮廓  

步骤2

"""ROI提取"""
cv2.drawContours(ROI, contours, 1,(255,255,255),-1)    #ROI区域填充白色,轮廓ID1
ROI=cv2.cvtColor(ROI,cv2.COLOR_BGR2GRAY)          #转换成灰度图
ROI=cv2.adaptiveThreshold(ROI,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,7,7)                   #自适应阈值化
imgroi= cv2.bitwise_and(ROI,proimage)            #图像交运算 ,获取的是原图处理——提取轮廓后的ROI
2.#imgroi = cv2.bitwise_and(src,src,mask=ROI) 
3.#imgroi = ROI & src 无需灰度+阈值,获取的是原图中的ROI

方法二

img1 = cv2.imread('roi.jpg')
roi = img1[0:rows, 0:cols ]

以上这篇Python+OpenCV感兴趣区域ROI提取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python程序中设置HTTP代理

0x00 前言 大家对HTTP代理应该都非常熟悉,它在很多方面都有着极为广泛的应用。HTTP代理分为正向代理和反向代理两种,后者一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡,...

Python 冒泡,选择,插入排序使用实例

最近学习了python基础,写一下3大排序练练手: 复制代码 代码如下: ''' Created on 2013-8-23 @author: codegeek ''' //冒泡排序 de...

Python守护进程(daemon)代码实例

# -*-coding:utf-8-*- import sys, os '''将当前进程fork为一个守护进程 注意:如果你的守护进程是由inetd启动的,不要这样做!ine...

使用IPython下的Net-SNMP来管理类UNIX系统的教程

引言 对于简单网络管理协议 (SNMP),大多数系统管理员都具有一定的使用经验,或者至少听说过它。如果您正在一个数据中心工作,那么您每天都可能采用某种方式与 SNMP 进行交互。有许多给...

python打包生成的exe文件运行时提示缺少模块的解决方法

python打包生成的exe文件运行时提示缺少模块的解决方法

事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我...