opencv学习:图像掩码处理和直方图分析及完整代码

图像掩码是一种二值图像,用于控制图像处理操作的应用区域。通过将掩码与原图像进行按位与操作,可以提取或屏蔽图像的特定部分。直方图是图像处理中的一个重要工具,用于分析图像的灰度分布。

实验步骤

  1. 使用OpenCV读取图像文件“phone.png”为灰度图像。
    phone=cv2.imread("phone.png",cv2.IMREAD_GRAYSCALE)
  2. 创建一个与原图像大小相同的掩码,并在指定区域设置掩码值为255。
    mask=np.zeros(phone.shape[:2],np.uint8)
    mask[50:350,100:470]=255
    cv2.imshow("mask",mask)
  3. 应用掩码,通过按位与操作提取掩码区域的图像。
    phone_mask=cv2.bitwise_and(phone,phone,mask=mask)
    cv2.imshow("phone_mask",phone_mask)
  4. 使用掩码计算提取区域的灰度直方图。
    phone_hist_mask=cv2.calcHist([phone],[0],mask,[256],[0,256])
  5. 使用Matplotlib绘制直方图。
    plt.plot(phone_hist_mask)

实验结果

完整代码

phone=cv2.imread("phone.png",cv2.IMREAD_GRAYSCALE)
mask=np.zeros(phone.shape[:2],np.uint8)
mask[50:350,100:470]=255
cv2.imshow("mask",mask)
cv2.waitKey(0)phone_mask=cv2.bitwise_and(phone,phone,mask=mask)
cv2.imshow("phone_mask",phone_mask)
cv2.waitKey(0)phone_hist_mask=cv2.calcHist([phone],[0],mask,[256],[0,256])
plt.plot(phone_hist_mask)
cv2.waitKey(0)
plt.show()

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

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

相关文章

JS基础之【对象详解 -- 对象的属性与方法、遍历对象与内置对象】

🚀 个人简介:某大型国企高级前端开发工程师,7年研发经验,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~ 💟 作 者:码…

后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0916)

接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径: http://big-event-vue-api-t.itheima.net 本项目的技术栈 本项目技术栈基于 ES6、vue3、pinia、vue-router 、vite 、axios 和 element-plus http:/…

Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )

一:Linux 背景知识 1.1. Linux 是什么 Linux 是一个操作系统. 和 Windows 是 “并列” 的关系,经过这么多年的发展, Linux 已经成为世界第一大操作系统,安卓系统本质上就是 Linux. 1.2 Linux 发行版 Linux 严格意义来说只是一个 “操作系…

Parallels Desktop 20 搭载内置 AI 包正式发布

近期 Parallels 官方发布 Parallels Desktop 20 For Mac,这是一款流行的Mac虚拟化软件。 该版本引入了 Parallels AI 工具包,这将主要惠及需要新工具在 Mac 上使用人工智能的开发人员。 配合即将发布的 macOs sequoia 和 Windows 11 24H2,P…

Android源码集成 Google Play

1、 The Open GApps Project 下载 对应系统和平台的gms压缩包,压缩包文件如下: Core和Optional目录下为谷歌服务核心文件和应用,需要预置到源码中。解压Core 和 Optional 目录所有文件,得到如下文件夹: 其中 etc 和 li…

C++ | Leetcode C++题解之第412题Fizz Buzz

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> fizzBuzz(int n) {vector<string> answer;for (int i 1; i < n; i) {string curr;if (i % 3 0) {curr  "Fizz";}if (i % 5 0) {curr "Buzz";}if (curr.si…

Django学习实战篇五(适合略有基础的新手小白学习)(从0开发项目)

前言&#xff1a; 本章中&#xff0c;我们开始引入前端框架Bootstrap 来美化界面。在前面的章节中&#xff0c;我们通过编写后端代码来处理数据。数据之于网站&#xff0c;就相当于灵魂之于人类。而网站的前端就相当于人的形体外貌。其中HTML是骨架&#xff0c;而CSS是皮肤&…

创造增强叙事的互动:Allison Crank的沉浸式体验设计理念

在沉浸式技术日新月异的今天,如何通过用户交互增强叙事,而非分散注意力,成为了设计师们共同面临的挑战。作为用户体验设计师和研究员,Allison Crank以其独特的视角和丰富的经验,为我们揭示了这一领域的核心原则与实践方法。 叙事与互动的和谐共生 Allison Crank强调,互…

STM32使用ESP-01S连接WiFi通过云平台与手机APP联动

ESP-01S测试 我们买回来ESP-01S模块之后&#xff0c;首先要对模块的好坏进行测试&#xff0c;是否能正常通过串口通信&#xff0c;是否能正常连接手机热点或WiFi&#xff0c;一般模块买回来默认出厂烧录了AT固件&#xff0c;如果我们需要使用一些特殊的协议&#xff08;如MQTT协…

【云岚到家-即刻体检】-day07-2-项目介绍及准备

【云岚到家-即刻体检】-day07-2-项目介绍及准备 1 项目介绍1&#xff09;项目简介2&#xff09;界面原型3&#xff09;实战目标 2 搭建实战环境1&#xff09;服务端2&#xff09;管理端前端工程3&#xff09;用户端前端工程4&#xff09;测试 3 熟悉项目代码1&#xff09;接口文…

《程序猿之设计模式实战 · 观察者模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【混淆矩阵】Confusion Matrix!定量评价的基础!如何计算全面、准确的定量指标去衡量模型分类的好坏??

【混淆矩阵】Confusion Matrix&#xff01;定量评价的基础&#xff01; 如何计算全面、准确的定量指标去衡量模型分类的好坏&#xff1f;&#xff1f; 文章目录 【混淆矩阵】Confusion Matrix&#xff01;定量评价的基础&#xff01;1. 混淆矩阵2.评价指标3.混淆矩阵及评价指标…

【AI大模型】Transformer模型:Postion Embedding概述、应用场景和实现方式的详细介绍。

一、位置嵌入概述 \1. 什么是位置嵌入&#xff1f; 位置嵌入是一种用于编码序列中元素位置信息的技术。在Transformer模型中&#xff0c;输入序列中的每个元素都会被映射到一个高维空间中的向量表示。然而&#xff0c;传统的自注意力机制并不包含位置信息&#xff0c;因此需要…

强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法

一、强化学习RL 强化学习是机器学习的一个重要的分支&#xff0c;是一种有效的工具&#xff0c;在文献中被广泛用于解决MDP问题。在一个强化学习过程中&#xff0c;一个智能体只能通过和它所处的环境互动学习最优策略。特别地&#xff0c;智能体首先观察自己当前的状态&#xf…

CRE62539 不同尾缀功率不同

CRE62539MSQ 是一款内置高压 MOS 功率开关管的高性能多模式原边控制的12W开关电源芯片。CRE62539MSQ以较少的外围元器件、较低的系统成本设计出高性能的交直流转换开关电源。CRE62539MSQ 提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、软启动、芯片…

Linux:RPM软件包管理以及Yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名&#xff1a;firefox 软件包名&#xff1a;firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件&#xff08;参数为软件名&#xff09; ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…

Elment-plus组件失效(没有样式)(0916)

在学习Vue3时&#xff0c;使用Element-plus组件库开发登录页面&#xff0c;发现无法显示反馈组件的样式 然后查找相关博客后&#xff0c;发现原来是因为我使用按需导入&#xff0c;然后又在登录页面导入&#xff0c;导致组件样式失效 删除导入语句后&#xff0c;成功显示反馈组…

大数据处理技术:HBase的安装与基本操作

目录 1 实验名称 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 Hbase数据库的安装 5.2 创建表 5.3 添加数据、删除数据、删除表 5.4 使用Java操作HBase 6 实验结果 6.1 Hbase数据库的安装 6.2 创建表 6.3 添加数据、删除数据、删除表 6.4 使用Java操…

Linux进阶 修改文件权限

linux文件权限 查看文件权限 用 ls -l 查看当前目录下文件权限 各部分对应的内容: 第一个字符代表这个文件类型[d]:目录[-] :文件[l]:连结档(link file);[b]:装置文件里面的可供储存的接口设备(可随机存取装置)[c]:装置文件里面的串行端口设备,例如键盘、鼠标(一次性…

Linux常用目录结构

一、Linux常用目录结构 目录名 目录作用 /bin/ 存放系统命令的目录,普通用户和超级用户都可以执行。 是/usr/bin/目录的软链接 /sbin/ 存放系统命令的目录,只有超级用户才可以执行。是/ usr/ sbin/目录的软链接 /usr/bin/ 存放系统命令的目录,普通用户和超级用户都可以…