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

如何显示标注的纯黑mask图

文章目录

  • 前言
  • 一、二分类mask显示
  • 二、多分类mask显示

前言

通常情况下,使用标注软件标注的标签图看起来都是纯黑的,因为mask图为单通道的灰度图,而灰度图一般要像素值大于128后,才会逐渐显白,255为白色。而标注的时候,不同类别的像素值是从1,2,3...这样的顺序,所以看起来是纯黑的。

一、二分类mask显示

若只是二分类,原本像素值就只有0和1的区分,那只需要将像素1转换为255即可显示白色,可使用inRange函数

	cv::Mat img = cv::imread("C:/Users/WA.png",0);cv::Mat img_i;cv::inRange(img, 1, 1, img_i); // 上界和下界都为1,即只匹配值为1的像素;将值为1的像素设置为白色(255),其余像素为黑色(保持不变)cv::imshow("img", img);cv::imshow("img_i", img_i);

在这里插入图片描述

二、多分类mask显示

若存在多个类别,就需要给每个类别单独定义一种颜色。(彩色图是三通道的,mask图是单通道,所以这种操作也称为伪彩色映射)

代码如下(示例):

import cv2
import numpy as np
from PIL import Image
import globcolor_map = np.zeros((256 * 3)).astype('uint8')
color_map[:3 * 13] = np.array([[0, 0, 0],   # 0像素还是得为0[41, 43, 204],  # 原像素值为1的[6, 128, 245],  # 原像素值为2的[36, 159, 67],[41, 43, 204],[190, 104, 145],[75, 86, 135],[195,120,219],[127, 127, 127],[18, 189, 187],[207, 190, 72],[233, 199, 178],[118, 187, 248]],dtype='uint8').flatten()def labeltocolor(mask):im=Image.fromarray(mask)im.putpalette(color_map)im=np.array(im.convert('RGB'))# cv2.imshow("1",im)# cv2.waitKey()# cv2.destroyAllWindows()return im# 遍历文件夹中的所有图片
image_paths = glob.glob('C:/Users/Desktop/train01/01/mask/*.png')
idx = 0  # 当前图片索引
num_images = len(image_paths)  # 图片数量for image_path in image_paths:# 加载单通道遮罩图(假设为灰度图)mask = cv2.imread(image_paths[idx], cv2.IMREAD_GRAYSCALE)# 将遮罩图像应用伪彩色映射mask_color = labeltocolor(mask)cv2.imshow('Result', mask_color)key = cv2.waitKey(0) if key == ord('q'):  breakelif key == ord('n'):  idx = (idx + 1) % num_imagescv2.destroyAllWindows()
http://www.lryc.cn/news/229707.html

相关文章:

  • 【算法每日一练]-图论(保姆级教程 篇1(模板篇)) #floyed算法 #dijkstra算法 #spfa算法
  • c语言数据结构---十字链表
  • 使用python电脑轻量级控制手机—adb命令和手机投屏
  • VBA技术资料MF82:替换文件夹中文件名中的字符
  • 如何利用大模型蒸馏出小模型实现降本
  • CentOS 中启动 Jar 包
  • 法治智能起航 | 拓世法宝AI智慧政务一体机重塑法治格局,开启智能司法新篇章
  • 【华为云IaaS基础三件套之----计算ECS、网络EIP、存储EVS】
  • c语言数据结构---广义表
  • 2023.11.12使用flask对图片进行黑白处理(base64编码方式传输)
  • MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出
  • js 深度学习(四)
  • leetcode刷题日记:121. Best Time to Buy and Sell Stock( 买卖股票的最佳时机)
  • Mac 本地部署thinkphp8【部署环境以及下载thinkphp】
  • 【汽车电子】CAN总线分析仪使用介绍(PCAN/同星CAN卡)
  • C //例 7.13 有一个3*4的矩阵,求所有元素中的最大值。
  • 基于SSM的供电所档案管理系统
  • excel用RAND函数生成一个大于0小于1的随机数
  • 详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
  • mysql使用--数据库的基本操作
  • 计算机毕业设计选题推荐-个人记账理财微信小程序/安卓APP-项目实战
  • 如何利用IP代理进行海外推广?
  • 使用FFmpeg转封装为hls(m3u8)流
  • npm install导致的OOM解决方案
  • HTTP和HTTPS详解
  • 设计模式之模版方法(TemplateMethod)
  • 为什么数据安全很重要?哪些措施保护数据安全?
  • git push 操作代码回退
  • ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?
  • 【链接装载与库】 Linux共享库的组织