当前位置:网站首页>语义分割学习笔记(一)
语义分割学习笔记(一)
2022-07-02 12:01:00 【浅念念52】
一、区别
语义分割:每个像素都打上标签(这个像素是人,树,背景等)语义分割只区分类别,不区分类别中的具体单元

实例分割:不光要区分类别,还要区分类别中的每一个个体

全景分割:相当于语义分割加上实例分割

二、代码演示原图像与mask融合
from PIL import Image
import imgviz
import numpy as np
image_file=r'D:\aaa\envs\labelme\Scripts\2_3_json\img.png'
mask_file=r'D:\aaa\envs\labelme\Scripts\2_3_json\label.png'
image=Image.open(image_file)
mask=Image.open(mask_file)
mask_img=Image.blend(image.convert("RGBA"),
mask.convert("RGBA"),0.5)
mask_img.save("vis2.png")

三、数据处理
将labelme标注好的json转换成mask图像
import json
import os
import imgviz
import numpy as np
from PIL import Image
import cv2
import glob
def save_colored_mask(mask,image_file):
lbl_image=Image.fromarray(mask.astype(np.uint8),mode='P')
colormap=imgviz.label_colormap()
lbl_image.putpalette(colormap.flatten())
lbl_image.save(image_file)
json_files=r'E:\桌面\资料\语义分割'
img_file=r'E:\桌面\资料\语义分割\图片'
json_l=glob.glob(os.path.join(json_files,'*.json'))
for json_ in json_l:
name=os.path.basename(json_)
img_name=name.replace('json','png')
fs=open(json_,encoding='utf-8')
dict_=json.load(fs)
# 获取图像 宽,高
height = dict_['imageHeight']
width = dict_['imageWidth']
shapes = dict_["shapes"]
# 生成一个全零图像
img = np.zeros((height, width), dtype=np.uint8)
label_color = {
"sheep": 1}
for shape in shapes:
# 解析多边形轮廓点的坐标
points = shape['points']
# 解析多边形的标签
label = shape['label']
points = np.array(points, dtype=np.int32)
# 绘制轮廓
cv2.polylines(img, [points], isClosed=True, color=(255), thickness=2)
# 填充多边形颜色
cv2.fillPoly(img, [points], color=label_color[label])
img_path=os.path.join(img_file,img_name)
print(img_path)
save_colored_mask(img, img_path)
边栏推荐
- C语言中的算术运算及相关练习题
- How to conduct TPC-C test on tidb
- 02_线性表_顺序表
- How does CTO help the business?
- 15_Redis_Redis.conf详解
- TiDB数据迁移场景综述
- XML Configuration File
- CodeCraft-22 and Codeforces Round #795 (Div. 2)D,E
- C # delay, start the timer in the thread, and obtain the system time
- PHP method to get the index value of the array item with the largest key value in the array
猜你喜欢
随机推荐
btrace-(字节码)动态跟踪工具
LeetCode 2320. Count the number of ways to place the house
[solution] educational codeforces round 82
AtCoder Beginner Contest 254
How to solve the problem of database content output
Tidb cross data center deployment topology
The traversal methods of binary tree mainly include: first order traversal, middle order traversal, second order traversal, and hierarchical traversal. First order, middle order, and second order actu
记一次面试
04_ Stack
蜻蜓低代码安全工具平台开发之路
TiDB混合部署拓扑
MFC 定时器使用
LeetCode - 搜索二维矩阵
Tidb environment and system configuration check
C语言实现N皇后问题
The past and present lives of visual page building tools
Sharp tool SPL for post SQL calculation
10_Redis_geospatial_命令
03_線性錶_鏈錶
19_Redis_宕机后手动配置主机









![[untitled] leetcode 2321 Maximum score of concatenated array](/img/a3/54d0e83f02ef0d0d8d269351c35b39.png)