将COCO数据集的分割掩膜的游程编码(REL)转换为分割掩膜边界点的坐标(二维列表的形式)

了解COCO数据集游程编码的方式,请看这个视频,讲的比价详细:https://www.youtube.com/watch?v=h6s61a_pqfM

必须的第三方库:

        1.pycocotools (windows安装教程windows如何安装pycocotools_windows安装pycocotools_二呵狗的博客-CSDN博客

        2.opencv-python

 直接上代码

from pycocotools import mask as maskUtils
import cv2
import json

input_value = {"size": [2060, 1500], "counts": "TS_f15SP27K3N2iTNHWf1:bYN0Yf12cYN1\\f11mWN7SNKni11PVNS2OmMPj15aUN\\2;aMSj1m3`UNVL_j1m4N1O1O1O10000O10O10O100000000O10000O100O1O100O101O000000000O10O101N1N2N2O1O100O100\\KhUNT3Wj1jLnUNS3Tj1kLoUNR3Rj1mLTVNW3ci1hL`VNW3_i1hLdVNV3\\i1iLfVNV3Zi1jLgVNU3Yi1jLiVNV3Vi1jLlVNT3Ti1kLnVNT3Ri1lLoVNS3Qi1lLQWNS3oh1mLRWNR3nh1nLSWNQ3mh1nLVWNP3jh1PMWWNo2ih1QMXWNl2jh1TMWWNg2mh1XMUWNV1gNlN_j1NkVNS1jNkN]j12jVNQ1lNiN\\j16jVNm0mNjN[j19iVNk0nNjNZj1;iVNh0QOkNVj1=jVNe0TOjNTj1a0jVN3EXObi1e0YYNVOjf1j0\\4001O00001O00001O00001O10O01O001O1O1O1O1O2N1O1O1O1O1O1O100O101N10000O00100O1O1O100O1O1O0000lNRRNGQn17S1O2N1O101M4Mom^o0"}

mask = maskUtils.decode(input_value)

# 查看二值化的mask的结果
from PIL import Image
Image.fromarray(mask * 255)


# 找到掩膜的边界点
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

# 获取第一个边界的所有点坐标
boundary_points = contours[0][:, 0, :].tolist()

# 将二位列表的结果写入json
with open("output_file.json", 'w') as f:
    json.dump(boundary_points, f)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值