Opencv中cv2.floodFill算法的使用


Posted in Python onJune 18, 2021
目录
  • 一、 泛洪算法——floodFill函数原型
  • 二、简单应用
  • 三、应用,结合minareaRect

 

一、 泛洪算法——floodFill函数原型

cv2.floodFill(img,mask,seed,newvalue(BGR),(loDiff1,loDiff2,loDiff3),(upDiff1,upDiff2,upDiff3),flag)
  • img:为待使用泛洪算法的图像
  • mask:为掩码层,使用掩码可以规定是在哪个区域使用该算法,如果是对于完整图像都要使用,则掩码层大小为原图行数+2,列数+2.是一个二维的0矩阵,边缘一圈会在使用算法是置为1。而只有对于掩码层上对应为0的位置才能泛洪,所以掩码层初始化为0矩阵。【dtype:np.uint8
  • seed:为泛洪算法的种子点,也是根据该点的像素判断决定和其相近颜色的像素点,是否被泛洪处理。
    【类似于Opencv中cv2.floodFill算法的使用
  • newvalue:是对于泛洪区域新赋的值(B,G,R)
  • (loDiff1,loDiff2,loDiff3):是相对于seed种子点像素可以往下的像素值,即seed(B0,G0,R0),泛洪区域下界为(B0-loDiff1,G0-loDiff2,R0-loDiff3)
  • (upDiff1,upDiff2,upDiff3):是相对于seed种子点像素可以往上的像素值,即seed(B0,G0,R0),泛洪区域上界为(B0+upDiff1,G0+upDiff2,R0+upDiff3)
  • flag:为泛洪算法的处理模式。

Opencv中cv2.floodFill算法的使用

  • 低八位 控制算法的连通性,是以seed点为中心,接着判断周围的几个像素点,再将泛洪区域像素点周围的几个像素点进行考虑。 一般为4,8;默认为4
  • 中间八位 与掩码层赋值密切相关,一般使用(255<<8)使中间8位全位1,则值为255,也就是掩码层对应原图的泛洪区域的部分被由原来的初值0赋值成255,如果中间8位为0,则赋值为1.
  • 高八位 由opencv宏参数指定
    • cv2.FLOODFILL_FIXED_RANGE:改变图像,填充newvalue
    • cv2.FLOODFILL_MASK_ONLY:不改变原图像,也就是newvalue参数失去作用,而是改变对应区域的掩码,设为中间八位的值

Opencv中cv2.floodFill算法的使用

Opencv中cv2.floodFill算法的使用

 

二、简单应用

#泛洪填充(彩色图像填充)
import cv2
import numpy as np
def fill_color_demo(image):
    copyImg = image.copy()
    h, w = image.shape[:2]
    mask = np.zeros([h+2, w+2],np.uint8)   #mask必须行和列都加2,且必须为uint8单通道阵列
    #为什么要加2可以这么理解:当从0行0列开始泛洪填充扫描时,mask多出来的2可以保证扫描的边界上的像素都会被处理
    cv.floodFill(copyImg, mask, (220, 250), (0, 255, 255), (100, 100, 100), (50, 50 ,50), cv.FLOODFILL_FIXED_RANGE)
    cv.imshow("fill_color_demo", copyImg)
 
src = cv.imread('E:/imageload/baboon.jpg')
cv.namedWindow('input_image', cv.WINDOW_AUTOSIZE)
cv.imshow('input_image', src)
fill_color_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

Opencv中cv2.floodFill算法的使用

Opencv中cv2.floodFill算法的使用

 

三、应用,结合minareaRect

cv2.floodFill(initial_car,mask,(seed_x,seed_y),(255,0,0),(loDiff,loDiff,loDiff),(upDiff,upDiff,upDiff),flag)
 
points = []
row,column = mask.shape
 
for i in range(row):
    for j in range(column):
        if mask[i][j]==255:
           points.append((j,i))   #点应该输入点坐标(列,行)
points = np.asarray(points)
new_rect = cv2.minAreaRect(points)

到此这篇关于Opencv中cv2.floodFill算法的使用的文章就介绍到这了,更多相关Opencv cv2.floodFill内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python根据经纬度计算距离示例
Feb 16 Python
python改变日志(logging)存放位置的示例
Mar 27 Python
详细介绍Python函数中的默认参数
Mar 30 Python
python通过smpt发送邮件的方法
Apr 30 Python
python递归计算N!的方法
May 05 Python
Python生成不重复随机值的方法
May 11 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
python实现月食效果实例代码
Jun 18 Python
Python简易版停车管理系统
Aug 12 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
python实现b站直播自动发送弹幕功能
Feb 20 Python
用Python实现Newton插值法
Apr 17 Python
Python下opencv使用hough变换检测直线与圆
python 网络编程要点总结
Jun 18 #Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 #Python
教你用Python+selenium搭建自动化测试环境
Jun 18 #Python
详解Python函数print用法
Jun 18 #Python
总结Python使用过程中的bug
简单介绍Python的第三方库yaml
Jun 18 #Python
You might like
php gzip压缩输出的实现方法
2013/04/27 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
django 中QuerySet特性功能详解
2019/07/25 Python
python实发邮件实例详解
2019/11/11 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
Linux机考试题
2015/07/17 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
小区门卫岗位职责
2013/12/31 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
读群众路线心得体会
2014/03/07 职场文书
班主任寄语大全
2014/04/04 职场文书
企业职业病防治方案
2014/05/29 职场文书
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python