【简化版蒙板扣图】带你轻松走进OPENCV蒙板扣图的世界

news2024/9/21 4:40:52

蒙板扣图的学习目标:

图像素材:
在这里插入图片描述

本操作适用图片:

-前景清晰,背景模糊的原始图片


自定义库:

把OPENCV中的干扰理解的部分,制作成独立的库文件,这样学友们就可以轻松的理解蒙板扣图的真正含义。

自定义的方法名称:

  1. show2img:可以同时显示两种图片img,mask的类方法。
  2. imrd() 方法可以获取原图
  3. contourShape.findContours()通过寻找轮廓方法获取三个返回值

蒙板扣图原理:

掩模图像M中只有两种值:一种是数值0,另外一种是数值255。
255

  • 得到的轮廓白色轮廓图:
    在这里插入图片描述
    轮廓中白色部分:255r的值,对应到img原图位置的所有像素点都会显示,如图:
    在这里插入图片描述

完整代码:

from img_pakage.ocv import imrd,contourShape,show_img,show2img
import numpy as np
import cv2

'''
分析图像:
    因为图像是一个背景和前景区分比较明显的图形,背景模糊而前景清晰,所以适合使用二值分割,加轮廓提取的办法。
原理:
    1、生成一个全黑的0数组底图,然后使用绘制全部轮廓的方法,绘制一个纯白轮廓图。(值:255)
    2、利用bitwise_and(img,mask) 使用蒙板进行原图img中蒙板部分提取(原理:值为255部分显示图像,其它隐藏)
    
'''
img_path = f'../img/exam_flower.png' #图片文件本地路径
img = imrd(img_path) #通过读取数据,获取原图
binary,cnt,hie = contourShape.findContours(img_path) #通过轮廓命令获取二值图,轮廓图,层级列表
mask = np.zeros(img.shape,np.uint8) #通过全0数组获取与图像等大蒙板
mask = cv2.drawContours(mask,cnt,-1,(255,255,255),-1) # 把全部轮廓(cnt)(-1)通过绘制,进行填充绘制(-1:尾部)然后输出到蒙板mask。
loc = cv2.bitwise_and(img,mask)

show2img(mask,loc)

制作体会:

  1. 代码简洁,学习者不容易晕。
  2. 解释通俗易懂,学习者容易理解。
  3. 需要原库函数代码,请大家留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言:分支与循环语句

文章目录一.什么是语句二.控制语句三(一).分支语句if-else3.1if3.2if-else3.3if-else嵌套3.4悬空else3.5if语句判断的流程3.6if语句可能会犯的小错误三(二).分支语句switch四.循环语句4.1while语句4.2do while语句4.3for语句4.4一道简单又不简单的小题目4.5循环总结4.6循环上的…

Opencv中关于特征点匹配定位的问题(一)DMatch解析

Opencv中关于特征点匹配定位的问题回顾定位回顾 在我们检测到特征点之后,通常进行特征点的匹配。 首先我们先回顾一下使用Brute-Force匹配器来进行匹配。 import cv2 import numpy as np import matplotlib.pyplot as plt#读取图片 imgcv2.imread(./newmm.png) te…

宝藏软件Obsidian知识体系搭建,免费的多端云同步

宝藏软件Obsidian知识体系搭建,免费的多端云同步。 为什么推荐Obsidian 人很奇怪,在关注短期目标的时候,会有成功失败之说,但是如果关注体系呢?就不那么会在乎短期收益了. 为什么呢?因为体系可能会创造强大的滚雪球效应. 使用笔记软件颇多…

如何针对时间片论法进行优化

前言 通过该篇学习了嵌入式的任务调度(即时间片论法)后,了解到通过以1ms为调度时间单位轮询判断是否需要执行函数任务,那么下面介绍如何基于时间片论法的任务调度模式充分利用MCU的资源,姑且先称这种方式为时间片差分…

一致性hash算法

目录 1.业务场景 2.传统hash算法 2.一致性hash算法 2.1.算法过程 2.1.一直性hash算法的优点 2.2.一致性hash算法的缺点 2.3.hash倾斜的解决办法 1.业务场景 假设有30000张图片需要存放到编号为1、2、3的3台服务器上。 2.传统hash算法 假设有30000张图片需要存到3台服务器…

【JavaWeb开发-Servlet】拾起海中的漂流瓶增强版

目录 原版: 1、前端样式 2、错误提示 3、实现id序列增长 完整项目代码: 原版: 【JavaWeb开发-Servlet】拾起海中的漂流瓶_代码骑士的博客-CSDN博客需求:点击网页按钮随机显示一句话:1、内容涵盖:老人…

PySpark大数据计算教程

PySpark大数据计算教程 了解如何将 Spark 与 Python 结合使用,包括 Spark Streaming、机器学习、Spark 2.0 DataFrames 等! 课程英文名:Spark and Python for Big Data with PySpark 此视频教程共4.0小时,中英双语字幕&#xf…

多模态(红外,可见光)目标检测

【github】https://github.com/DocF/multispectral-object-detection 一.环境 1.1 环境 基本依赖和yolov5基本相同,当然也可以配置在虚拟环境中 git clone https://github.com/DocF/multispectral-object-detection cd multispectral-object-detection pip ins…

基于燃压缩空气储能系统的零碳微能源互联网优化调度(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,…

由美国火星照片细节,分析造假的疑点

穿帮都是细节。 除了阿波罗登月,你觉得美国还在哪些航天项目中有造假嫌疑? - 知乎 西红柿加醋 能走着游泳就好了 ​ 关注 无可靠信息来源 423 人赞同了该回答 除了登月,比较又争议的当然就数登火了,比如出自Nasa官方网站上的…

CSS布局-定位,相对,绝对,子绝父相,固定定位,层级关系。

CSS布局-定位,相对,绝对,子绝父相。 目录CSS布局-定位,相对,绝对,子绝父相。1、定位1.1 网页常见布局方式1.2 定位的常见应用场景2.1 定位初体验2.2 使用定位的步骤3.1 静态定位4.1 相对定位5.1 绝对定位5.…

矩阵理论复习(五)

2004年试题 Hermite矩阵酉相似于对角阵 验证相容矩阵范数 盖尔圆盘互不相交,则特征值都不相同,若盖尔圆盘全部出现在右半复平面上,则特征值全为实数。 矩阵二范数的计算 最大秩分解M-P广义逆矩阵方程是否有解 2005年试题 正定矩阵&a…

【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析

秒杀购物商城业务服务-分布式架构介绍 基于MySQL数据库集群技术实现服务的高可用基于Tomcat的集群负载机制实现Tomcat服务器的高可用基于Nginx负载均衡机制实现负载均衡(介绍和配置)基于Redis缓存服务实现数据缓存控制相关介绍和技术点分析 基于MySQL数…

RTC 时钟电路如何选择法拉电容的容量

理论依据: 公式 1:Q I * t 公式 2:Q CU 由此推导出→I * t CU →t CU/I(将根据这个计算时钟保留时长) 说明 Q: 电荷量 (单位:库仑)I: 电流 (单位:安培&a…

QT/C语言 实现数据库sqlite3

QT/C语言 实现数据库sqlite3【1】引入数据库【2】下载移植sqlite31.移植sqlite32.使用sqlite33.sqlite3中的数据类型4.常用的SQL语句(全部都是分号结尾)(1)新建表格(2)往表格中插入数据(3)查询表格中的数据(4)删除表格中的数据(5)修改表格中的数据【3】C语言调用sqlite31.接口函…

第10部分 DHCP

目录 10.1 DHCP 概述 10.2 实验1:DHCP 基本配置 1.实验目的 2.拓扑结构 3.实验步骤 4.实验调试 (1)在客户端测试 (2)show ip dhcp pool (3)show ip dhcp binding 10.3 实验&#xff…

LeetCode 1827. 最少操作使数组递增

最少操作使数组递增 简单 46 相关企业 给你一个整数数组 nums (下标从 0 开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。 比方说,如果 nums [1,2,3] ,你可以选择增加 nums[1] 得到 nums …

实战讲解Spring定时任务:@Scheduled(图+文+源码)

1 缘起 最近看到有些定时任务的项目, 使用了Spring自带的定时任务系统,通过添加Scheduled注解的方式实现, 并且,使用了不只cron表达式的方式实现定时执行, 恍然大悟,原来Scheduled还有其他的方式实现定时任…

《小猫猫大课堂》3之字符串,转义字符,注释,选择和循环语句,函数等小概括。

更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发, 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我…

这十套练习,教你如何用Pandas做数据分析(01)

Pandas是入门Python做数据分析所必须要掌握的一个库。本文内容由和鲸社区翻译整理自Github,建议读者完成科赛网 从零上手Python关键代码 和 Pandas基础命令速查表 教程学习的之后,点击本篇Notebook右上角的 Fork 按钮对本教程代码进行调试学习。 转载本…