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

yipeiwu_com6年前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 for i in range ()用法详解

for i in range ()作用: range()是一个函数, for i in range () 就是给i赋值: 比如 for i in range (1,3): 就是把1,2依...

python调用短信猫控件实现发短信功能实例

python调用短信猫控件实现发短信功能实例代码如下所示: #! /usr/bin/env python #coding=gbk import sys import win32com...

Flask框架各种常见装饰器示例

Flask框架各种常见装饰器示例

本文实例讲述了Flask框架各种常见装饰器。分享给大家供大家参考,具体如下: 效果类似django的process_request的装饰器 @app.before_request d...

Python标准库defaultdict模块使用示例

Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会带来很多的便利,多看看很有好处。 defaultdict是其中一个方法,就...

简单的Python调度器Schedule详解

最近在做项目的时候经常会用到定时任务,由于我的项目是使用Java来开发,用的是SpringBoot框架,因此要实现这个定时任务其实并不难。 后来我在想如果我要在Python中实现,我要怎...