当前位置: 首页 > news >正文

主要用于图像的颜色提取、替换以及区域修改

这段代码涉及了以下几个关键步骤,主要用于图像的颜色提取、替换以及区域修改。下面是对代码的详细解析:

1. 导入库

import cv2
import matplotlib.pyplot as plt
import numpy as np
  • cv2: OpenCV库,用于图像处理。
  • matplotlib.pyplot: 用于绘图和显示图像。
  • numpy: 用于数组处理。

2. 读取并显示图像

image = cv2.imread("./lunwen.png")
plt.imshow(image)
  • cv2.imread():读取指定路径的图像。
  • plt.imshow():使用 Matplotlib 显示图像。

3. 颜色提取与替换

lower_blue = (50, 0, 0)
upper_blue = (150, 255, 255)
mask = cv2.inRange(image, lower_blue, upper_blue)
  • 使用 cv2.inRange() 函数创建一个掩膜,用来提取图像中蓝色区域。lower_blueupper_blue 定义了蓝色的颜色范围(在 HSV 颜色空间中)。
image[mask.astype(bool)] = (185, 28, 28)
  • 将掩膜中的蓝色区域的像素值替换为 (185, 28, 28)(红色),mask.astype(bool) 将掩膜转换为布尔值数组。

4. 修改非蓝色区域

white_mask = cv2.inRange(image, (255, 255, 255), (255, 255, 255))
image[np.logical_and(white_mask == 0, ~mask)] = (78, 124, 15)
  • 创建一个白色掩膜,cv2.inRange() 用来提取图像中的白色区域(完全白色的像素)。
  • 使用 np.logical_and()~mask,将原图中非蓝色且非白色区域的像素值替换为 (78, 124, 15)(绿色)。

5. 保存并显示图像

plt.imsave('E:/绝缘子/1/1/实验图/绝缘子.png', image)
plt.imshow(image)
plt.axis('off')
  • 使用 plt.imsave() 将处理后的图像保存到指定路径。
  • plt.imshow(image) 显示修改后的图像。
  • plt.axis('off') 禁用坐标轴显示。

6. 处理标注图像

quyu = cv2.imread("E:/insulator/1/1/picture/lion/label.png")
quyu = quyu.mean(axis=2)
print(quyu)
np.unique(quyu)
  • 读取一个标注图像 label.png,然后通过 mean(axis=2) 将其转换为灰度图(平均化 RGB 通道)。
  • 使用 np.unique() 显示灰度图中出现的唯一值。

7. 修改图像中的特定区域

image[quyu != 0] = (255, 0, 255)
  • 在图像中,所有标注区域(quyu != 0)的像素被替换为紫色 (255, 0, 255)

8. 保存修改后的图像

plt.imsave("E:/insulator/1/1/picture/lion/lion.png", image)
plt.imshow(image)
plt.axis('off')
  • 保存并显示修改后的图像。

总结:

这段代码实现了以下功能:

  1. 提取并替换图像中的蓝色区域,将其改为红色。
  2. 将非蓝色且非白色区域修改为绿色。
  3. 根据标注图像(label.png)中非零的区域,将对应图像区域更改为紫色。
  4. 保存修改后的图像并进行展示。

整个流程包括了基于颜色范围的图像区域提取、颜色替换、区域修改、以及标注图像的处理,适用于图像分割和标记任务。

相关文章:

主要用于图像的颜色提取、替换以及区域修改

这段代码涉及了以下几个关键步骤,主要用于图像的颜色提取、替换以及区域修改。下面是对代码的详细解析: 1. 导入库 import cv2 import matplotlib.pyplot as plt import numpy as npcv2: OpenCV库,用于图像处理。matplotlib.pyplot: 用于绘…...

gbase8c之运维操作

导出结构: gs_dump -U gbase8s -W Password123 -f /tmp/dump_only_structure.sql -p 15400 sids_station -n public -s -F p 导出数据: gs_dump -U gbase8s -W Password123 -f /tmp/dump_only_data.sql -p 15400 sids_station -n public -a -F p 导入…...

云原生学习

1、云原生学习 文章目录 1、云原生学习1. 介绍2. Docker容器化 1. 介绍 什么是云原生?原生指使用JAVA等语言编写的项目,云是指将项目部署到云服务器上云平台:公有云、私有云 本地平台是指直接部署在自己计算机,而开发的应用一定要…...

深入解析 Vue 3 中的 defineExpose

深入解析 Vue 3 中的 defineExpose 在 Vue 3 的组合式 API&#xff08;Composition API&#xff09;中&#xff0c;defineExpose 是一个重要的辅助函数&#xff0c;专门用于在 <script setup> 模式下暴露组件内部的属性和方法给父组件使用。本文将详细解析 defineExpose…...

Docker3:docker基础1

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…...

【UGUI】背包的交互01(道具信息跟随鼠标+道具信息面板显示)

详细程序逻辑过程 初始化物品栏&#xff1a; 在 Awake 方法中&#xff0c;通过标签找到提示框和信息面板。 循环生成10个背包格子&#xff0c;并为每个格子设置图标和名称。 为每个格子添加 UInterMaager232 脚本&#xff0c;以便处理交互事件。 关闭提示框和信息面板&#…...

ubuntu20.04中编译安装gcc 9.2.0

ubuntu20.04中编译安装gcc 9.2.0,步骤如下&#xff1a; #install compile dependence libraries 1&#xff1a;$ sudo apt install libgmp-dev libisl-dev libmpc-dev libmpfr-dev # install gcc 9.2.0 # download source code 2&#xff1a;$ wget http://ftp.gnu.org/gn…...

ss 命令的基本用法

ss 命令的基本用法 ss [选项]-tanl 选项解释 -t&#xff1a;显示 TCP 连接。-a&#xff1a;显示所有连接&#xff08;包括监听端口&#xff09;。-n&#xff1a;显示数字形式的地址和端口号&#xff0c;而不是解析为主机名和服务名。-l&#xff1a;仅显示监听的端口。 使用示…...

Leetcode198. 打家劫舍(HOT100)

代码&#xff1a; class Solution { public:int rob(vector<int>& nums) {int n nums.size();vector<int> f(n 1), g(n 1);for (int i 1; i < n; i) {f[i] g[i - 1] nums[i - 1];g[i] max(f[i - 1], g[i - 1]);}return max(f[n], g[n]);} }; 这种求…...

kafka基础

文章目录 一、Kafka入门1.1、JMS1.2、生产者-消费者模式1.3、ZooKeeper 二、kafka基础架构2.1、producer2.2、kafka cluster2.2.1、broker2.2.2、Controller2.2.3、Topic2.2.4、Partition2.2.5、Replication2.2.6、Leader & Follower 2.3、consumer 一、Kafka入门 Kafka是一…...

STM32CUBEIDE FreeRTOS操作教程(九):eventgroup事件标志组

STM32CUBEIDE FreeRTOS操作教程&#xff08;九&#xff09;&#xff1a;eventgroup事件标志组 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为…...

Python设计模式详解之2 —— 工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;旨在定义一个用于创建对象的接口&#xff0c;但由子类决定实例化哪个类。工厂模式可以帮助我们将对象的创建与其使用分离&#xff0c;增强代码的可扩展性和维护性。 工厂模式的分类 简单工厂…...

【Zookeeper】二、主从应用(master-worker架构)

以一张具有代表性的架构风格展开本篇论述 一般在这种架构中&#xff0c;主节点所负责的工作主要有 跟踪从节点状态分配任务到从节点&#xff0c;并跟踪任务的有效性&#xff08;任务是否正常执行完成&#xff09; 此时&#xff0c;我们需要关注三个问题 主节点崩溃 如果主节…...

Diffusion【2】:VAE

系列文章目录 文章目录 系列文章目录前言1. Abstract2. Introduction2.1. Motivation2.2. Contribution 3. Methods3.1. Problem Scenario3.2. The variational bound3.3. The SGVB estimator and AEVB algorithm3.3.1. Stochastic Gradient Variational Bayes Estimator3.3.2.…...

高级java每日一道面试题-2024年11月19日-基本篇-获取一个类Class对象的方式有哪些?

如果有遗漏,评论区告诉我进行补充 面试官: 获取一个类Class对象的方式有哪些? 我回答: 在 Java 中&#xff0c;获取一个类的 Class 对象有多种方式。这些方式各有优缺点&#xff0c;适用于不同的场景。以下是常见的几种方法及其详细解释&#xff1a; 1. 使用 new 关键字实…...

xilinx xapp1171学习笔记

在xapp1171示例中&#xff0c;假设Host PC将PCIE:BAR0赋值为&#xff1a;0x00000000_def00000 PCIEBAR2AXIBAR_00x81000000&#xff0c;即Host PC读写0x00000000_def00000就是在读写AXI地址0x81000000&#xff08;BRAM在AXI总线上的基地址&#xff09; 在AXI总线上&#xff0…...

一次需升级系统的wxpython安装(macOS M1)

WARNING: The scripts libdoc, rebot and robot are installed in /Users/用户名/Library/Python/3.8/bin which is not on PATH. 背景&#xff1a;想在macos安装Robot Framework &#xff0c;显示pip3不是最新&#xff0c;更新pip3后显示不在PATH上 参看博主文章末尾 MAC系统…...

el-table 数据去重后合并表尾合计行,金额千分位分割并保留两位小数,表尾合计行表格合并

问题背景 最近在做后台管理项目el-table 时候需要进行表尾合计&#xff0c;修改合计后文字的样式&#xff0c;合并单元格。 想实现的效果 合并表尾单元格前三列为1格&#xff1b;对某些指定的单元格进行表尾合计&#xff1b;合计后的文本样式加粗&#xff1b;涉及到金额需要千…...

Springboot整合mybatis-plus使用pageHelper进行分页

PageHelper 使用步骤全解析 在进行 Web 应用开发时&#xff0c;经常会涉及到数据库数据的分页展示。PageHelper 是一个非常实用的 MyBatis 分页插件&#xff0c;它能够方便地实现数据库查询结果的分页功能&#xff0c;极大地提高了开发效率。以下将简单介绍 PageHelper 的使用…...

【Xbim+C#】创建拉伸的墙

基础 基础回顾 效果图 简单的工具类 using System.Collections.Generic; using System.Linq; using Xbim.Common.Step21; using Xbim.Ifc; using Xbim.Ifc4.GeometricConstraintResource; using Xbim.Ifc4.GeometricModelResource; using Xbim.Ifc4.GeometryResource; using…...

【Go i18n】TOML语言包

一、VS Code 必备的 TOML 插件1. Even Better TOML&#xff08;核心高亮与语法检查 &#x1f451;&#xff09;搜索关键字&#xff1a;Even Better TOML为什么要装&#xff1a;它是目前全网公认第一的 TOML 插件。装上它之后&#xff0c;你的 .toml 文件不仅会变得色彩斑斓&…...

Unity背包系统设计终极指南:ScriptableObject+事件总线+对象池

1. 为什么“背包系统”不是功能模块&#xff0c;而是游戏世界的呼吸节奏 在Unity项目里&#xff0c;我见过太多团队把背包系统当成一个“做完就扔”的中间件&#xff1a;美术给图标、策划填Excel表格、程序写个List 塞进UI面板&#xff0c;跑通基础增删就打上✅。结果呢&#x…...

为openclaw配置taotoken作为其ai供应商的详细步骤指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw配置Taotoken作为其AI供应商的详细步骤指南 OpenClaw是一款流行的AI智能体开发工具&#xff0c;它允许开发者通过配置来…...

科研实验室数字化转型:如何用eLabFTW打造专业电子实验笔记本系统

科研实验室数字化转型&#xff1a;如何用eLabFTW打造专业电子实验笔记本系统 【免费下载链接】elabftw :notebook: eLabFTW is the most popular open source electronic lab notebook for research labs. 项目地址: https://gitcode.com/gh_mirrors/el/elabftw 在当今数…...

3分钟掌握MultiHighlight:让代码阅读效率提升300%的智能高亮插件

3分钟掌握MultiHighlight&#xff1a;让代码阅读效率提升300%的智能高亮插件 【免费下载链接】MultiHighlight Jetbrains IDE plugin: highlight identifiers with custom colors &#x1f3a8;&#x1f4a1; 项目地址: https://gitcode.com/gh_mirrors/mu/MultiHighlight …...

Unity ScriptableObject+序列化多态构建模块化特效系统

1. 这不是“换个写法”&#xff0c;而是重构整个效果系统的底层逻辑在Unity项目做到中后期&#xff0c;你大概率会遇到这样一个场景&#xff1a;美术同学提来第17个新粒子特效需求&#xff0c;策划说“和之前那个爆炸效果差不多&#xff0c;但要加个拖尾音效屏幕震动”&#xf…...

SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第三篇:STRUCT结构声明全指南:嵌套结构与深层结构的差异与选型

变量、常量、结构与内表声明&#xff08;10篇博客合集&#xff09; 第三篇&#xff1a;STRUCT结构声明全指南&#xff1a;嵌套结构与深层结构的差异与选型在ABAP开发中&#xff0c;结构体&#xff08;Structure&#xff09;是将多个字段组合成一个逻辑单元的核心手段。从简单的…...

终极AI音乐创作工具:5分钟生成专业级歌曲翻唱

终极AI音乐创作工具&#xff1a;5分钟生成专业级歌曲翻唱 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 你是否曾经梦想…...

深度掌握GB28181视频监控API:构建高效国标协议的3个核心技巧

深度掌握GB28181视频监控API&#xff1a;构建高效国标协议的3个核心技巧 【免费下载链接】wvp-GB28181-pro 基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台。自带管理页面&#xff0c;支持NAT穿透&#xff0c;支持海康、大华、宇视等品牌的IPC、NVR接入…...

NotebookLM视频转文字API未公开的底层协议解析:如何绕过30分钟时长限制并批量处理TB级教学视频

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM视频转文字功能概览与官方限制边界 NotebookLM 是 Google 推出的面向研究者与知识工作者的 AI 助手&#xff0c;其核心能力之一是基于用户上传的内容&#xff08;如 PDF、网页、音频&#xf…...