蒙板扣图的学习目标:

图像素材:

本操作适用图片:

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


自定义库:

把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. 需要原库函数代码,请大家留言。

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

  1. 手把手带你轻松走进思维导图

    1.什么是思维导图? 简单例子1:课程安排表 思维导图又叫心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种革命性的思维工具.思维导图运用图文并重的技巧,把各级主题的关系用相互隶 ...

  2. 详解递归,文+图+代码,带你轻松了解递归算法的设计思路(附汉诺塔分析及题解)

    递归,从代码实现上来看就是函数的自我调用,即在函数体中再调用函数本身.如: void dg(int i){if(i>10)return;//递归出口cout<<i;//可以是其他语句 ...

  3. 美妆海报不会做? PSD分层模板带你轻松掌握!

    美妆海报最重视视觉的感觉,海报的设计尤为重要! 这个时候没有灵感了怎么办? 不要急文案之后,先理清文案信息,用亲密性原则解决信息之间的关系,再了解其所在行业的 项目调性,深度了解行业的特性,其实当我们 ...

  4. 无需TCL编程能力,STKO带你轻松玩转OpenSEES

    笔者:心尘轩/Angus 划重点:通过本文,你会了解OpenSEES(以下简称OS)基于tcl 和C++混合编程的实质,会洞悉一个有限元软件的三大主要部分,会明白现在OS的不足.并在对一个有限元软件宏 ...

  5. 【2022 CCF BDCI 文心大模型创意项目】中秋款文心带你轻松搞定MV制作

    [2022 CCF BDCI 文心大模型创意项目]中秋款文心带你轻松搞定MV制作 项目效果先知 项目地址: https://aistudio.baidu.com/aistudio/projectdet ...

  6. 带你发现新大陆!什么是图数据库以及简单入门!

    一.关系型数据库的不适性 在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle.MySQL,它们也被称为:关系数据库管理系统(RDBMS).然而,随 ...

  7. Make!Sense 动手好伴侣,带你轻松做实验

     Make!Sense 动手好伴侣,带你轻松做实验 你是否对大自然各种神奇的现象充满了好奇心,但面对错综复杂的实验却无从下手?无论是实验步骤还是所需材料,对普通人来说都太难 get.而 Make! ...

  8. 一文带你入门目前大热的图神经网络

    点击我爱计算机视觉标星,更快获取CVML新技术 深度学习一直都是被几大经典模型给统治着,如CNN.RNN等等,它们无论再计算机视觉CV还是自然语言处理NLP领域都取得了优异的效果. 针对CV领域,图像 ...

  9. 从原理到实践,手把手带你轻松get数仓双集群容灾

    摘要:本文通过介绍双集群的架构.log结构.分析步骤来介绍双集群容灾的问题分析方法. 本文分享自华为云社区<从原理到实践,手把手带你轻松get数仓双集群容灾>,原文作者:Puyol . 双 ...

最新文章

  1. module 'cv2' has no attribute 'CV_LOAD_IMAGE_GRAYSCALE'
  2. 为什么要使用 using namespace std
  3. 中国移动与清华大学达成战略合作,将共同研究6G
  4. 蚂蚁资深算法专家周俊:从原理到落地,支付宝如何打造保护隐私的共享智能?...
  5. Flume架构以及应用介绍[转]
  6. ASP.NET之Ajax系列(三)
  7. python函数的基本使用_Python学习笔记——主要函数及基本使用(与C的对比)
  8. 新手如何检查MacBook电池的运行状况
  9. 基于Mac制作iPhone铃声教程,iTunes定制铃声
  10. 解决Qt安装后没有桌面图标
  11. 等保测评--网络安全等级保护定级指南
  12. 通过3dmax将max文件导出为unity3d可用的带贴图的fbx文件
  13. oracle分区详解
  14. 在SSH会话中如何实现 X11 Forwarding
  15. Android通讯录导入到Iphone
  16. rust怎么拆除墙壁指令_腐蚀RUST基本指令及服务器指令大全
  17. 为什么放弃Kafka,选择Pulsar?
  18. ismusicactive副作用_Android得到一个闹钟在第三方
  19. python操作postgre库,批量进行增删改查和计时比较效率,封装好的普通增删改查和批量增删改查类拿来即用
  20. RobotStudio如何配置自定的义第七轴

热门文章

  1. [hihocoder1489][微软2017年预科生计划在线编程笔试][Legendary Items]
  2. 类化工原料罐使用凉凉胶隔热中间漆 增加漆膜厚度
  3. 洛谷P1640 连续攻击游戏 二分图匹配
  4. Android源码之单双摄像头修改
  5. 命令注入_深入分析SaltStack Salt命令注入漏洞
  6. 蒲公英(pgyer)——完美的 App测试方案
  7. 【运维面试】面试官: jar包和war包有什么区别?
  8. 为什么可积不一定可导_普洱茶古树单株不一定好喝但是为什么那么贵?
  9. [从零开始]用python制作识图翻译器·三
  10. 计算机系统直流地 哪,长春哪有接地模块检测怎么做热情服务