第三章-OpenCV基础-4-掩模

article/2025/10/1 4:04:37

基本概念

掩模,又称为掩膜,掩码,模板。图像掩模是指,用特定的图像/图形/物体遮挡代处理的图像(全部或局部),从而控制图像处理的区域,在数字图像处理中,掩模就是一个指定的数组,毕竟,图像也是数组。

左边图为原图,中间图为掩模(白色区域为透明区域,黑色区域为黑色遮挡区域),经过控制处理后,得到右边的结果图。

乘法运算

乘法运算的基础是任何数与0相乘为0,任何数和1相乘为其本身

简单实操如下:

import cv2 as cv
import numpy as nplena = cv.imread("lena.jpg")
shape = lena.shape
cv.imshow("lena", lena)
# 生成掩模区域
yanmo = np.zeros([shape[0], shape[1], shape[2]], np.uint8)
# 生成掩模实际作用区域
yanmo[100:300, 200:400] = 1
# 掩模乘法操作
new_lena = lena * yanmo
cv.imshow("new_lena", new_lena)cv.waitKey()
cv.destroyAllWindows()

显示如下:

 

注意:

  1. 图像的shape属性是一个包含图片长、宽、通道数的元祖
  2. 生成的掩模和图像大小必须完全一致

逻辑运算

逻辑运算的基础是任何数与0进行按位与运算结果为0,任何数与1进行按位与运算为其本身,8位像素值的全1值为255。

因此如上代码可以改为:

import cv2 as cv
import numpy as nplena = cv.imread("lena.jpg")
shape = lena.shape
print(type(shape))
cv.imshow("lena", lena)
# 生成掩模区域
yanmo = np.zeros([shape[0], shape[1], shape[2]], np.uint8)
# 生成掩模实际作用区域,全部为255
yanmo[100:300, 200:400] = 255
# 掩模按位与操作
new_lena = cv.bitwise_and(lena, yanmo)
cv.imshow("new_lena", new_lena)cv.waitKey()
cv.destroyAllWindows()

效果如上图一样。

掩模作为函数参数

我们知道,掩模本质是一个特定的数组,掩模在函数中作为参数存在。

举例说明: 计算结果 = cv2.add( 参数1 , 参数2 ,掩模 )

当使用掩模参数时,操作只会在掩模数组中值为非空的像素点上执行,并将其他像素点的像素值置为0

具体使用如下代码:

import cv2 as cv
import numpy as nplena = cv.imread("lena.jpg")
# 随便截的一张图,大小和lena的一样 512*512
test = cv.imread("test.png")
h, w, c = lena.shape
cv.imshow("lena", lena)
cv.imshow("test", test)
# 生成掩模区域
yanmo = np.zeros([h,w], np.uint8)
# 生成掩模实际作用区域,全部为非0即可,这里随便选了100
yanmo[0:400, 100:400] = 100
# 掩模作为函数参数使用
new_lena = cv.add(lena, test, mask=yanmo)
cv.imshow("mask", new_lena)cv.waitKey()
cv.destroyAllWindows()

运行结果:

 

注意:

  1. 掩模作为函数参数实现时,只要数组位置的值为0,则这些位置都置为0
  2. 其他不为0的位置的数值,只要不为0即可

 


http://chatgpt.dhexx.cn/article/DChtHVls.shtml

相关文章

在微信小程序中如何引入iconfont

在微信小程序如何引用iconfont? 1.首先进入iconfont 选择自己喜欢的图标 iconfont-阿里巴巴矢量图标库 2.选择自己喜欢的图标加入购物车 3.将图标添加至项目(如果没有项目就随便新建一个项目) 4.打开个人主页 找到自己的项目,点…

微信小程序引入iconfont

第一种 在tabBar中使用 只能下载到本地,放在文件夹中使用 如下图: 第二种 在页面内使用iconfont图标 1:复制代码 2:粘贴到wxss文件里 3:在app.wxss中引入该文件 4:就可以在文件里面使用iconfont图…

微信小程序中使用tabBar

文章目录 前景知识小程序项目app.jsonpages/home/home.wxmlpages/camera/camera.wxmlpages/user/user.wxml 相关链接 前景知识 前面我们学习过:在app.json里对小程序进行全局配置,app.json的文件内容是一个JSON对象,包含很多属性&#xff0c…

微信小程序|icon列表跳转不同界面

效果&#xff1a; 包含图片、文字&#xff0c;分列布局&#xff0c;点击对应图标跳转到相应界面 WXML&#xff1a; <!-- 三个主要功能:文书服务&#xff0c;在线咨询&#xff0c;律师匹配跳转到对应页面&#xff0c;可以返回注意php后台和数据库搭建--><view class&…

微信小程序引入阿里巴巴icon步骤及报错解决

首先将选择好的图标加入购物车,点击右上角购物车图标&#xff0c;将其添加进项目中。(Add To Project) 添加进入项目后&#xff0c;会自动跳转到该项目&#xff0c;选择Download Code&#xff0c; 解压缩包&#xff0c;只会用到文件夹中的4个文件&#xff0c;将解压后的下面4个…

微信小程序引入iconfont图标

一、查看iconfont项目设置 二、生成在线链接 为什么要生成在线链接&#xff0c;因为微信小程序不能用静态文件 三、根据下载的iconfont.css配置app.wxss 下载的iconfont.css配置 自定义app.wxss配置 为什么不直接用iconfont.css&#xff0c;因为微信小程序不支持css只支持wxss…

《微信小程序-进阶篇》组件封装-Icon组件的实现(一)

大家好&#xff0c;这是小程序系列的第九篇文章&#xff0c;从这篇开始我们将进入提高篇&#xff0c;在这一个阶段&#xff0c;我们的目标是可以较为深入的了解组件化开发&#xff0c;并且实践积累一些后续项目也就是原神资料站中用得着的组件&#xff1a; 1.《微信小程序-基础…

uniapp与微信小程序引入iconfont

加入购物车&#xff0c;下载解压 引入 uniapp 微信小程序 使用 icon更新后更换线上url&#xff0c;就不用每次下载解压

微信小程序引入下载至本地的iconfont图标

在写小程序项目中遇到icon图标引入不起作用&#xff0c;原因是因为小程序必须先转为base64引入&#xff01; 第一步 选好自己要用的icon图标并下载至本地 下载后得到这样目录的文件 第二步 转换成base64 网址&#xff1a;https://transfonter.org/ 选择后缀为.ttf的文件 第…

《微信小程序-进阶篇》组件封装-Icon组件的实现(二)

大家好&#xff0c;这是小程序系列的第十篇文章&#xff0c;在这一个阶段&#xff0c;我们的目标是 由简单入手&#xff0c;逐渐的可以较为深入的了解组件化开发&#xff0c;并且实践积累一些后续项目也就是原神资料站中用得着的组件&#xff1a; 1.《微信小程序-基础篇》带你了…

黑马微信小程序入门

文章目录 1.环境准备1.1. 注册账号1.2 获取APPID1.3 下载开发工具 2第一个微信小程序2.1. 打开微信开发者⼯具2.2. 新建⼩程序项⽬2.3 填写项目信息 3.小程序的目录结构3.1. ⼩程序⽂件结构和传统web对⽐3.2. 基本的项⽬⽬录 4.⼩程序配置⽂件4.1. 全局配置app.json4.2 tabbar4…

【微信小程序】简洁好用的icon(94/100)

布局 <!--pages/icon/icon.wxml--> <icon class"icon-box-img" type"success" size"50"></icon> <view class"icon-box-title">成功</view> <icon class"icon-box-img" type"info&q…

【微信小程序】组件使用及属性参考

文章目录 3.1 视图容器组件3.1.1 视图容器view3.1.2 滚动视图scroll-view3.1.3 可移动视图movable-view3.1.4 覆盖视图3.1.5 滑块视图swiper 3.2 内容组件3.2.1 图标icon3.2.2 进度条progress3.2.3 文本text 3.3 导航组件3.4 小程序UI框架3.4.1 WeUI3.4.2 iView3…

微信小程序icon图标引入

一、iconfont-阿里巴巴矢量图标库 下载需要的图标 1.将想要的图标添加入库并下载代码 二、下载成功后&#xff0c;将得到一个名为 "download.zip" 的文件&#xff0c;然后解压得到这么一堆文件&#xff1a; 三、转换 ttf 文件为 base64 推荐去 https://transfonter…

关于微信小程序图标icon的五种实现方案

关于图标icon 微信小程序中的 icon 组件只有 9 种类型 success、success_no_circle、info、warn、waiting、cancel、download、search、clear。 只有9个类型的图标往往是不够的&#xff0c;需要拓展更多的icon组件图标。 第一种方案 直接使用图片&#xff08;简单粗暴&#xf…

微信小程序引入外部icon

微信小程序引入外部icon最详细介绍 1.获取图标 阿里矢量库&#xff1a;iconfont-阿里巴巴矢量图标库 选中相应的图标 添加图标到购物车&#xff08;多个图标&#xff09; ​​​​​ 添加项目 下载本地 解压转换—-》 转化网站&#xff1a;Online font-face generator…

如何在微信小程序中使用icon字体图表

1.首先我们需要去icon字体库中选中几个想要的图标加入购物车 2.点击右上角的购物车图标进入 3. 进入购物车&#xff0c;点击下载代码 4.下载好的文件夹进行解压 5.将.ttf后缀文件转化为base64格式的方式&#xff08;推荐网址&#xff1a;Online font-face generator — Transfo…

微信小程序添加icon图标教程

1 官方自带 样式基于 v2 “style”: “v2”, app.json设置的v2&#xff0c;删除这个就没有呢 icon 官方地址 https://developers.weixin.qq.com/miniprogram/dev/component/icon.html <view class"cu-list grid col-3"><view class"cu-item" wx:…

微信小程序使用iconfont在线icon

微信小程序可以使用外部icon&#xff0c;比较常用的就是iconfont&#xff0c;可以搜索想要的icon和选择想要的颜色然后png下载&#xff0c;然后放到小程序的images文件夹里本地使用。 为了节省空间&#xff0c;也可以在线使用 在iconfont官网中我的页面创建一个自己的项目 然后…

微信小程序icon图标怎么用

先看效果 有的图标weapp中没有就需要去阿里图标库找合适的,但是小程序不能直接引入图标的链接(不支持html) icon使用 1 先建空项目&#xff0c;2搜索想要的图标&#xff0c;3加入购物车&#xff0c;4生成代码 &#xff0c;5在项目里的index.html引入 使用 link-css标签 将复制生…