CV图像处理小工具——json文件转P格式mask
CV图像处理小工具——json文件转P格式mask
import cv2
import json
import numpy as np
import osdef func(file_path: str) -> np.ndarray:try:with open(file_path, mode='r', encoding="utf-8") as f:configs = json.load(f)# 检查JSON是否包含必要的字段if "shapes" not in configs or "imageHeight" not in configs or "imageWidth" not in configs:raise ValueError("JSON文件缺少必要的字段")shapes = configs["shapes"]image_height = configs["imageHeight"]image_width = configs["imageWidth"]png = np.zeros((image_height, image_width, 3), np.uint8)for shape in shapes:if "points" not in shape:raise ValueError("形状缺少点信息")points = np.array(shape["points"], np.int32).reshape((-1, 1, 2)) # 确保点是正确的形状cv2.fillPoly(png, [points], (0, 0, 255))return pngexcept Exception as e:print(f"处理文件 {file_path} 时出错: {e}")return None# 硬编码的文件路径input_directory = "H:/" # 可以是单个文件路径或目录路径
output_directory = "H:/"# 确保输出目录存在
if not os.path.exists(output_directory):os.makedirs(output_directory)# 处理单个文件或目录中的文件
if os.path.isfile(input_directory) and input_directory.endswith(".json"):# 处理单个JSON文件input_file = input_directoryoutput_file = os.path.join(output_directory, os.path.splitext(os.path.basename(input_file))[0] + ".png")image = func(input_file)if image is not None:cv2.imwrite(output_file, image)
else:# 处理目录中的JSON文件for file_name in os.listdir(input_directory):if file_name.endswith(".json"):input_file = os.path.join(input_directory, file_name)output_file = os.path.join(output_directory, os.path.splitext(file_name)[0] + ".png")image = func(input_file)if image is not None:cv2.imwrite(output_file, image)

相关文章:
CV图像处理小工具——json文件转P格式mask
CV图像处理小工具——json文件转P格式mask import cv2 import json import numpy as np import osdef func(file_path: str) -> np.ndarray:try:with open(file_path, moder, encoding"utf-8") as f:configs json.load(f)# 检查JSON是否包含必要的字段if "…...
Typora 快捷键操作大全
Typora 是一款简洁的 Markdown 编辑器,它提供了一些快捷键来帮助用户更高效地编辑文档。以下是一些常用的 Typora 快捷键,这些快捷键可能会根据操作系统有所不同(Windows 和 macOS): 常用格式化快捷键 加粗ÿ…...
<Project-8.1.1 pdf2tx-mm> Python 调用 ChatGPT API 翻译PDF内容 历程心得
原因 用ZhipuAI,测试用的PDF里,有国名西部省穆斯林,翻译结果返回 “系统检测到输入或生成内容可能包含不安全或敏感内容,请您避免输入易产生敏感内容的提 示语,感谢您的配合” 。想过先替换掉省名、民族名等ÿ…...
JDK1.1主要特性
JDK 1.1,也被称为Java Development Kit 1.1,是Java编程语言的第一个更新版本,由Sun Microsystems公司在1997年发布。JDK 1.1在JDK 1.0的基础上进行了许多重要的改进和扩展,进一步巩固了Java作为一种强大、安全的编程语言和平台的地…...
软件测试工作中-商城类项目所遇bug点
商城的 bug 1、跨设备同步问题 当用户在不同设备上使用同一个账户时,购物车数据无法正确同步这可能是由于购物车数据存储和同步机制不完善,导致购物车内容在设备之间无法实时更新。怎么解决:开发把同步机制代码修改了一下,就不会出现这个 bug 了。 2、数…...
Java多线程面试题
1.进程和线程的区别 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU中,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的。 当一个程序被运…...
安徽大学《2022年+2023年831自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《安徽大学831自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2022年真题 2023年真题 Part1:2022年2023年完整版真题 2022年真题 2023年真题…...
Vulnhub靶场案例渗透[6]- DC6
文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 主机信息收集2.3 主机目录扫描2.4 网站用户名和密码爆破 3. 反弹shell4. 提权 1. 靶场搭建 靶场源地址 检验下载文件的检验码,对比没问题使用vmware打开 # windwos 命令 Get-FileHash <filePath> -Algori…...
FreeSWITCH 分机网关路由
不废话了,直接贴代码: --[[作用:分机网关呼叫第一个参数: 分机号码第二个参数: 被叫号码第三个参数: 主叫号码使用例子:<extension name"usergw"><condition><action applicatio…...
数据交换的金钟罩:合理利用安全数据交换系统,确保信息安全
政府单位为了保护网络不受外部威胁和内部误操作的影响,通常会进行网络隔离,隔离成内网和外网。安全数据交换系统是专门设计用于在不同的网络环境(如内部不同网络,内部网络和外部网络)之间安全传输数据的解决方案。 使用…...
区块链积分系统:重塑支付安全与商业创新的未来
在当今社会,数字化浪潮席卷全球,支付安全与风险管理议题日益凸显。随着交易频次与规模的不断扩大,传统支付体系正面临前所未有的效率、合规性和安全挑战。 区块链技术,凭借其去中心化、高透明度以及数据不可篡改的特性,…...
Django学习笔记十三:优秀案例学习
Django CMS 是一个基于 Django 框架的开源内容管理系统,它允许开发者轻松地创建和管理网站内容。Django CMS 提供了一个易于使用的界面来实现动态网站的快速开发,并且具有丰富的内容管理功能和多种插件扩展。以下是 Django CMS 的一些核心特性和如何开始…...
SSH 公钥认证:从gitlab clone项目repo到本地
这篇文章的分割线以下文字内容由 ChatGPT 生成(我稍微做了一些文字上的调整和截图的补充),我review并实践后觉得内容没有什么问题,由此和大家分享。 假如你想通过 git clone git10.12.5.19:your_project.git 命令将 git 服务器上…...
linux 搭建sentinel
1.下载 linux执行下面的命令下载包 wget https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar2.启动 nohup java -Dserver.port9090 -Dcsp.sentinel.dashboard.serverlocalhost:9090 -Dproject.namesentinel-dashboard -jar sentin…...
微服务发展历程
服务架构演进 服务架构演进过程:抽取各个模块独立维护,独立部署的过程。 初创公司2 ~ 3个研发人员,ALL IN ONE 的框架开发效率最高。随着队伍的壮大,产品,用户,商品成立独立小组,拆出相应的模块…...
提示词优化、GPTs逆向工程、大语言模型原理、大语言模型优化、开源模型本地私有化部署、从零构建大语言模型、智能体构建以及大语言模型的发展趋势
深入理解和掌握大语言模型的前言技术,涵盖了提示词优化、GPTs逆向工程、大语言模型原理、大语言模型优化、开源模型本地私有化部署、从零构建大语言模型、智能体构建以及大语言模型的发展趋势。通过系统化的学习,不仅掌握理论知识,还能在实际…...
nn.Conv2d(二)
**前置知识: 1、nn.Conv2d和torch.nn.functional.conv2d的对比: nn.Conv2d(能自主学习,更新调整卷积核) 模块:可以看作是一个“卷积层”,用在神经网络里。定义一次,用多次…...
获取鸿蒙设备Udid遇到的问题
参考官方文档:注册调试设备-调试应用(HarmonyOS)-AppGallery Connect帮助中心 - 华为HarmonyOS开发者 (huawei.com) 坑一:The sdk hdc.exe version is too low, please upgrade to the latest version. 升级dev工具和sdk配置为api…...
【华为HCIP实战课程十】OSPF网络DR和BDR实战讲解,网络工程师
一、DR与BDR的基础介绍 点到点同步LSA成本小 多点接入网络同步LSA成本大,需要DR/BDR 由于MA网络中,任意两台路由器都需要传递路由信息,网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源,DR和BDR应运而生!…...
视频怎么去除杂音保留人声?让人声更动听!视频噪音处理攻略
在视频制作过程中,音质是至关重要的一环。然而,很多时候我们录制的视频会伴随着各种不想要的杂音,比如风声、交通噪音或是其他环境音,这些杂音严重影响了观众的观看体验。那么,如何在保留人声的同时,有效地…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
