【OpenCv 4 Python 3.7】ROI与泛洪填充

python-opencv实现绘制矩形roi区域 import cv2## 标题 global img global point1, point2 def on_mouse(event, x, y, flags, param): #1.event是 CV_EVENT_*变量之一 2.x和y是鼠标指针在图像坐标系的坐标(不是窗口坐标系) 3.flags是CV_EVENT_FLAG的组合, param是用户定义的传递到setMouseCallback函数调用的参数 global img, point1, point2 img2 = img.copy() if 阅读详情

在这里插入图片描述
 ROI(Region of interst感兴趣的区域),如何获取 numpy获取ROI
 泛洪填充
泛洪填充,如何填充一个对象内部区域

  • FLOODFILL_FIXED_RANGE – 改变图像,泛洪填充
  • FLOODFILL_MASK_ONLY – 不改变图像、只填充遮罩层本身、忽略新的颜色值参数
	floodFill(Mat image, Mat mask, Point seedPoint, Scalar newVal)

	floodFill(image, mask, seedPoint, newVal, rect, loDiff, upDiff, flags)
src(seed.x, seed.y)- loDiff <= src(x,y) <= src(seed.x, seed.y)+ upDiff

注意:

1.opencv里的mask都是为uin8类型的单通道阵列

2.泛洪填充算法也叫漫水填充算法。opencv的floodFill函数原型: floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, image, mask, rect

image参数表示输入/输出1或3通道,8位或浮点图像。

mask参数表示掩码,该掩码是单通道8位图像,比image的高度多2个像素,宽度多2个像素。填充时不能穿过输入掩码中的非零像素。

seedPoint参数表示泛洪算法(漫水填充算法)的起始点。

newVal参数表示在重绘区域像素的新值。

loDiff参数表示当前观察像素值与其部件邻域像素值或待加入该组件的种子像素之间的亮度或颜色之负差的最大值。

upDiff参数表示当前观察像素值与其部件邻域像素值或待加入该组件的种子像素之间的亮度或颜色之正差的最大值。

flags参数:操作标志符,包含三部分:(参考https://www.cnblogs.com/little-monkey/p/7598529.html)

低八位(0~7位):用于控制算法的连通性,可取4(默认)或8。

中间八位(8~15位):用于指定掩码图像的值,但是如果中间八位为0则掩码用1来填充。

高八位(16~32位):可以为0或者如下两种标志符的组合:

FLOODFILL_FIXED_RANGE:表示此标志会考虑当前像素与种子像素之间的差,否则就考虑当前像素与相邻像素的差。FLOODFILL_MASK_ONLY:表示函数不会去填充改变原始图像,而是去填充掩码图像mask,mask指定的位置为零时才填充,不为零不填充。

3.个人理解:参数3起始点的像素值减去参数5的像素值表示的是从起始点开始搜索周边范围的像素最低值,参数3起始点的像素值加上参数5的像素值表示的是从起始点开始搜索周边范围的像素最大值。有了这个范围,然后该函数就可以在这个连续像素范围内填充指定的颜色newVal参数值。

代码实现:

import cv2 as cv
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) #[h+2, w+2] 必须这样写
    #从(30, 30)开始,填充区间是:最小到 30-100,30-100 (100, 100, 100),最大到30+50,30+50 (50, 50, 50),在这个颜色区间的填充(0, 255, 255)颜色
    cv.floodFill(copyImg, mask, (30, 30), (0, 255, 255), (100, 100, 100), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE)
    cv.imshow("fill_color_demo", copyImg)


def fill_binary(): #二值填充
    image = np.zeros([400, 400, 3], np.uint8) #创造400*400  3通道的图像
    image[100:300, 100:300, : ] = 255
    cv.imshow("fill_binary", image)

    mask = np.ones([402, 402, 1], np.uint8)#np.ones 单通道的
    mask[101:301, 101:301] = 0
    #在(200, 200)开始填充,填充成(100, 2, 255)颜色
    cv.floodFill(image, mask, (200, 200), (100, 2, 255), cv.FLOODFILL_MASK_ONLY)
    cv.imshow("filled binary", image)

print("--------- Hello Python ---------")
src = cv.imread("E:/ji_qi_xue_xi/opencv_kejian/opencv_python_image/aaa.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
fill_color_demo(src)
#fill_binary()
"""
face = src[50:250, 100:300] #ROI区域
gray = cv.cvtColor(face, cv.COLOR_BGR2GRAY) #ROI区域变成灰度
backface = cv.cvtColor(gray, cv.COLOR_GRAY2BGR)#灰度图像给backface
src[50:250, 100:300] = backface   #backface给原图像
cv.imshow("face", src)
"""
cv.waitKey(0)
cv.destroyAllWindows()
Python-Opencv中ROI(region of Interest )和泛洪填充(cv2.floodFill()) Python-Opencv中ROI(region of Interest )和泛洪填充(cv2.floodFill()) 1. ROI ROI(region of Interest)从英语来看就是您所感兴趣的区域,也就是挖取您感兴趣的区域。 例如下图你对你这女生的脸部感兴趣,那么这个部分就叫做ROI。 import cv2 as cv # 读入女孩照片 girl = cv.imread("gir... 阅读详情

相关推荐

http2.0协议说明

http2.0的简单介绍,帮助开发者了解网络基础知识

基于OpenCV的手势识别完整项目(Python3.7)

这是我的本科毕设题目,刚开始接触机器学习这方面,感谢优快云和GitHub上的大佬,网上类似项目很多,方法也有很多,自己顺带进行了整理,边做毕设边分享一下自己学习心得吧,也算是梳理一下所学知识,各大佬有什么好的建议还请指出,不吝赐教。 项目简介:基于Win10 + Python3.7的环境,利用Python的OpenCV、Sklearn和PyQt5等库搭建了一个较为完整的手势识别系统,用于识别日...

qq_41562704的博客 13万+

STM32CubeMX的正交编码器encoder

由于最近干活遇到需要获取正交编码的功能,所以返回来研究一下STM32CubeMX的编码器功能,之前也更新过STM32的定时器功能,但是因为之前搞平衡车的正交编码器没有搞清楚原理,就直接用了脉冲输入功能草草了事,现在也算是为之前的年轻买单了,不过看到现有的Encoder说明都比较简单,所以就当是为开发者做贡献了,我研究清楚之后来一篇博客。

ASWaterbenben的博客 1万+

win10+Python3.7.3+OpenCV3.4.1入门学习(二)————2.3感兴趣区域(ROI)

Python版本是Python3.7.3,OpenCV版本OpenCV.3.4.1,开发环境为PyCharm 在图像处理过程中,我们可能会对图像的某一个特定区域感兴趣,该区域被称为感兴趣区域(Region of Interest, ROI)。在设定感兴趣区域ROI后,就可以对该区域进行整体操作。例如,将一个感兴趣区域A赋值给变量B后,可以将该变量B赋值给另外一个区域C,从而达到在区域C内复制区域A...

qq_951274168的博客 595

Jitsi中的Prosody(谐音:破扫敌)介绍

凭借其灵活的插件系统、强大的安全性和出色的性能,Prosody 成为许多企业和开发者构建定制化通信解决方案的首选。在 Jitsi 的多方视频会议场景中,Prosody 不仅处理基本的信令任务,还需要与其他组件(如 Jitsi Videobridge)协作,确保视频流的正确分发和控制。Prosody 提供了丰富的插件系统,允许开发者通过模块扩展其功能。Prosody 就是一个实现 XMPP 协议的服务器,它支持 XMPP 协议的标准功能,如消息传递、群组聊天、传送状态信息等,并提供了高效、可扩展的服务。

江左散人的专栏 1167

从零到一:手把手部署用友T3标准版11.2及SQL Server 2008R2环境

本文详细介绍了从零开始部署用友T3标准版11.2及SQL Server 2008R2环境的完整流程,包括环境准备、SQL Server安装、环境检测与修复、T3标准版安装实战以及初始化配置与测试。通过手把手的步骤指导和常见问题解决方案,帮助用户顺利完成部署,确保系统稳定运行。

weixin_28339967的博客 457

OpenCV自学:ROI与泛洪填充

本文浅讲ROI,泛洪填充,细讲泛洪填充基于代码的实际表现。 重点为方法以及代码参数原理。 文章目录ROI1. ROI是什么?泛洪填充方法总结 ROI 这里主要介绍以及说明ROI 1. ROI是什么? ROI是什么,在讲解这一节时,要清楚ROI是什么,即使知道它对我们目前的学习帮助可能并不大,但是这些小知识积累起来,也可以达到质变。 ROI:可以称之为 感兴趣区域。在机器学习,计算机视觉,图像处理中,我们常常以各种方式勾勒出需要处理的区域,我们将其称之为ROI,感兴趣区域,一般我们再处理图像时,往往先找到

qq_45804132的博客 659

基于javaEE的图书管理系统

极简的图书管理系统,无任何样式修饰,适合新手练手(图文并释) 1、实现了用户注册、登录,图书的添加、修改、删除和修改操作 2、工具需要:eclipse、mysql、Tomcat 3、做系统之前在eclipse需要配置Tomcat服务器和导入mysql连接数据库的jar包 4、数据库中建一个user表存用户信息,一个book表存图书信息 一、各种页面 index.html文件,系统运行的首页,有登录...

qq_44357792的博客 2万+

OpenCV-Python 选择ROI

OpenCV-Python选择ROI1. 矩形ROI,直接使用切片,简单粗暴2. 使用OpenCV中的一些函数获取ROI区域,这个用的最多3. 使用鼠标获取ROI区域4. 鼠标获取多边形ROI 1. 矩形ROI,直接使用切片,简单粗暴 import cv2 src = cv2.imread("D:\\python_script\\ffff\\qipan.png") roi = src[20:15...

红叶谷 wsp_1138886114的博客 2万+

REALTEK PKE8710ECF开发板入手试玩(一)

REALTEK PKE8710ECF开发板入手试玩

lbqhope的专栏 693

YOLOv4目标检测算法——通俗易懂的解析

YOLOv4目标检测算法——通俗易懂的解析

chase 7136

OpenCV+python:ROI与泛洪填充

1,ROI 感兴趣区(Region of Interest,ROI) 是图像的一部分,它通过在图像上选择或使用诸如设定阈值(thresholding) 或者从其他文件(如矢量> 转换获得等方法生成。机器视觉、图像处理中,感趣区可以是从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,通常用来作为图像分类的样本、掩膜、裁剪区或及其他操作。 源代码: import cv2 a...

qq_43660987的博客 709

基于MATLAB开发AUTOSAR软件应用层模块-part2.建立一个AUTOSAR的模型,并生成autosar格式代码

上一篇我们建立了一个空模型,这篇我们接着上篇文章,建立一个简单的模型 点击 Library Browser,打开simulink模块库,见下图 左侧是模块库的列表,右侧是每个模块库里包含的具体的模块。 点击通用模块库,里边是一些常见的模块, 我们选取里边的3个模块,分别是输入,输出和增益三个模块,右键点击模块,选择add block to model xx,可以把模块添加到模型中。 然后练好连线 一个简单的模型就搭建好了,之后我们修改配置,将模型修改为AUT...

汽车软件开发 3303

Python3+OpenCV3+Pycharm编程:提取ROI区域与泛洪填充

提取ROI区域 def roi_demo(image): """ ROI(region of interest) 感兴趣区域,从被处理的图像以方框、圆、椭圆、 不规则多边形等方式勾勒出需要处理的区域 """ face = src[200:400, 200:400] # 获取ROI区域:高度,宽度 gray_face = cv.cvtCo...

iloveluoluo一个小白程序员 1736

18、动态系统响应分析

本文系统地介绍了动态系统响应的分析方法,涵盖传递函数建模、特殊输入下的响应特性(如脉冲和阶跃响应)、终值与初值定理的应用、系统直流增益的计算,并深入探讨了一阶和二阶系统的时域特性。通过实例分析与MATLAB仿真,展示了不同参数对系统行为的影响。文章还总结了系统响应在控制设计与故障诊断中的实际应用,并展望了多变量、非线性及实时响应分析的未来研究方向。配合流程图,提供了清晰的系统分析与设计路径。

kite3的博客 144

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OpenCV之ROI和泛洪填充

一、获取RIO区域 import cv2 as cv import numpy as np print("----------hello python----------") src = cv.imread(r"D:\project\py_opencv\gyy.png") cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) cv.imshow...

qq_37692302的博客 1040

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

opencv基础入门——ROI与泛洪填充

opencv基础入门——ROI与泛洪填充 | 一、ROI | 二、泛洪填充

nanashi_F的博客 384

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

初学opencv 3-ROI与泛洪填充

填充模板,整体填充不能跨越输入遮罩中的非零像素。例如,边缘检测器输出可以用作遮罩,以停止边缘填充。输出时,像素与图像中填充像素对应的遮罩设置为1或标志中指定的值。

HHsHH1234的博客 373

【OpenCV】ROI、泛洪填充

ROI

qq_36926037的博客 411

OpenCV学习心得——python版——ROI和泛洪填充

OpenCV学习心得——python版——ROI和泛洪填充 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 本笔记仅供参考 操作系统版本:Windows10 编译器:JetBrains PyCharm 2019.1.3 x64 所需库: opencv-python2.xx.xx以上(我用的最新的,但是不一定要用最新的,3.4左右版本就行了)...

whl970831的博客 442

opencv进阶学习笔记4:ROI和泛洪扩充

基础版传送门链接: python3+opencv学习笔记汇总目录(适合基础入门学习) ROI 基础版ROI讲解 :opencv学习笔记5:感兴趣区域ROI ROI 感兴趣区域 从被处理的图像以方框,圆,不规则多边形等勾勒出我们感兴趣的区域。 可以通过各种算子(Operator)和函数来求得感兴趣的区域。 import cv2 as cv import numpy as np print("--------- Hello Python ---------") src = cv.imread("1.jpg")

总裁余(余登武)博客 2586

python图像自动填充颜色算法_Python3 OpenCV3图像处理-ROI和泛洪填充

ROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。泛洪填充算法(Flood Fill Algorithm)泛洪填充算法又称洪水...

weixin_39574720的博客 1053

Python opencv图像处理基础总结(二) ROI操作与泛洪填充 模糊操作 边缘保留滤波EPF

Python与opencv图像处理基础总结。1. ROI操作与泛洪填充 2. 均值模糊、中值模糊、自定义模糊 3. 高斯模糊的实现 4. 边缘保留滤波EPF,包括高斯双边滤波和均值迁移滤波。

叶庭云 成为自己的光 7411

python 填充算法,Python+OpenCV图像处理(六)—— ROI与泛洪填充

一、ROIROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。代码如下:#进行图片截取、合并、填充importcv2 as cvsrc=cv.imread('E:\imageload\lena.jpg')cv.namedWindow('first_image', cv.WI...

weixin_35773916的博客 1062

c++ opencv实现区域填充_OpenCV基础 | 6.ROI与泛洪填充

作者:小郭学数据源自:快学python学习视频可参见python+opencv3.3视频教学 基础入门[1]ROI与泛洪填充1.ROIROI(region of interest),感兴趣区域对lena图进行脸部的获取,代码如下defroi_test(src):#第一个参数,高度范围,第二个参数宽度范围face=src[200:410,200:400]gr...

weixin_39887925的博客 559
上一篇: 【OpenCv 4 Python 3.7】色彩空间(颜色转换)
下一篇: 【OpenCv 4 Python 3.7】模糊操作(均值模糊 中值模糊 自定义模糊 高斯模糊)
YL_python_C++_java
博客等级 码龄7年 1392粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值