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

知名网站定制公司电话手机网站开源

知名网站定制公司电话,手机网站开源,wordpress自带hosts文件,上杭网站开发将分割的mask转换为分割标签通常涉及将每个像素的类别标识#xff08;在mask中以不同的灰度值或颜色表示#xff09;转换为整数标签。这些标签通常用于机器学习或深度学习模型的训练、验证和测试阶段。 使用方式#xff0c;控制台或者命令行使用以下命令#xff1a; pyth…将分割的mask转换为分割标签通常涉及将每个像素的类别标识在mask中以不同的灰度值或颜色表示转换为整数标签。这些标签通常用于机器学习或深度学习模型的训练、验证和测试阶段。 使用方式控制台或者命令行使用以下命令 python polygon_mask_conversion.py --img_path xxx_folder --mask_path xxx_folder --mode mask2poly 转换代码来自X_anyLabeling的tool文件夹下的转换文件。 import argparse import json import os import time import cv2from PIL import Image from tqdm import tqdm from datetime import dateimport numpy as np import matplotlib as pltimport syssys.path.append(./) from anylabeling.app_info import __version__# Usage # # # # -------------------------------------------------------------------- mask2poly ----------------------------------------------------------------------# # python tools/polygon_mask_conversion.py --img_path xxx_folder --mask_path xxx_folder --mode mask2poly # # # # -------------------------------------------------------------------- poly2mask ----------------------------------------------------------------------# # [option1] python tools/polygon_mask_conversion.py --img_path xxx_folder --mask_path xxx_folder --mode poly2mask # # [option2] python tools/polygon_mask_conversion.py --img_path xxx_folder --mask_path xxx_folder --json_path xxx_folder --mode poly2mask # # # # Usage #VERSION __version__ IMG_FORMATS [.bmp,.dng,.jpeg,.jpg,.mpo,.png,.tif,.tiff,.webp,.pfm, ]class PolygonMaskConversion:def __init__(self, epsilon_factor0.001):self.epsilon_factor epsilon_factordef reset(self):self.custom_data dict(versionVERSION,flags{},shapes[],imagePath,imageDataNone,imageHeight-1,imageWidth-1,)def get_image_size(self, image_file):with Image.open(image_file) as img:width, height img.sizereturn width, heightdef mask_to_polygon(self, img_file, mask_file, json_file):self.reset()binary_mask cv2.imread(mask_file, cv2.IMREAD_GRAYSCALE)contours, _ cv2.findContours(binary_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)for contour in contours:epsilon self.epsilon_factor * cv2.arcLength(contour, True)approx cv2.approxPolyDP(contour, epsilon, True)if len(approx) 5:continueshape {label: object,text: ,points: [],group_id: None,shape_type: polygon,flags: {},}for point in approx:x, y point[0].tolist()shape[points].append([x, y])self.custom_data[shapes].append(shape)image_width, image_height self.get_image_size(img_file)self.custom_data[imagePath] os.path.basename(img_file)self.custom_data[imageHeight] image_heightself.custom_data[imageWidth] image_widthwith open(json_file, w, encodingutf-8) as f:json.dump(self.custom_data, f, indent2, ensure_asciiFalse)def polygon_to_mask(self, img_file, mask_file, json_file):with open(json_file, r) as f:data json.load(f)polygons []for shape in data[shapes]:points shape[points]polygon []for point in points:x, y pointpolygon.append((x, y))polygons.append(polygon)image_width, image_height self.get_image_size(img_file)image_shape (image_height, image_width)binary_mask np.zeros(image_shape, dtypenp.uint8)for polygon_points in polygons:np_polygon np.array(polygon_points, np.int32)np_polygon np_polygon.reshape((-1, 1, 2))cv2.fillPoly(binary_mask, [np_polygon], color255)cv2.imwrite(mask_file, binary_mask)def main():parser argparse.ArgumentParser(descriptionPolygon Mask Conversion)parser.add_argument(--img_path, helpPath to image directory)parser.add_argument(--mask_path, helpPath to mask directory)parser.add_argument(--json_path, default, helpPath to json directory)parser.add_argument(--epsilon_factor,default0.001,typefloat,helpControl the level of simplification when converting a polygon contour to a simplified version,)parser.add_argument(--mode,choices[mask2poly, poly2mask],requiredTrue,helpChoose the conversion mode what you need,)args parser.parse_args()print(fStarting conversion to {args.mode}...)start_time time.time()converter PolygonMaskConversion(args.epsilon_factor)if args.mode mask2poly:file_list os.listdir(args.mask_path)for file_name in tqdm(file_list, descConverting files, unitfile, colourblue):img_file os.path.join(args.img_path, file_name)mask_file os.path.join(args.mask_path, file_name)json_file os.path.join(args.img_path, os.path.splitext(file_name)[0] .json)converter.mask_to_polygon(img_file, mask_file, json_file)elif args.mode poly2mask:# Only binary mask transformations are supported.os.makedirs(args.mask_path, exist_okTrue)file_list os.listdir(args.img_path)for file_name in tqdm(file_list, descConverting files, unitfile, colourblue):base_name, suffix os.path.splitext(file_name)if suffix.lower() not in IMG_FORMATS:continueimg_file os.path.join(args.img_path, file_name)if not args.json_path:json_file os.path.join(args.img_path, base_name .json)else:json_file os.path.join(args.json_path, base_name .json)mask_file os.path.join(args.mask_path, base_name .png)converter.polygon_to_mask(img_file, mask_file, json_file)end_time time.time()print(fConversion completed successfully!)print(fConversion time: {end_time - start_time:.2f} seconds)if __name__ __main__:main()
http://www.dnsts.com.cn/news/39474.html

相关文章:

  • 网站建设电子商务wordpress slider设置
  • 合肥网站设计服网站开发整体制作流程
  • 企业网站 优秀重庆怎么站seo
  • 广州网站建设便宜山西网络广告推广
  • 淘宝客必须做网站app制作程序
  • asp.net做三个网站怎样把网站做的更好
  • 网站建设后需要交费吗北京网站报价
  • 电商运营的网站网站建设外包 排名
  • 佛山建站佛山网页设计腾讯企点下载安装
  • 外贸网站适合用数字域名吗怎么制作网站生成图片
  • 全国注册室内设计师网中英文网站用一个域名还是两个域名利于优化
  • wordpress 网站上传怎样能在百度上搜索到自己的店铺
  • 做网站的劣势遵义网站开发公司
  • 合肥企业网站建设工作室佛山市外贸网站建设
  • 如何创建网站制作平台互联网营销渠道有哪些
  • 怎么自己做网站加盟通用cms网站
  • 外贸网站搭建vps 网站打不开
  • 在线制作公司网站厦门建设局投诉电话
  • 如何向百度提交网站wordpress+dux+高亮
  • 房产如何做网站破解wordpress加密文章
  • 做网站建设多少钱佛山网站建设4-win方维
  • 如何建设一个子网站做网站要多
  • 顺德做网站推广哪家好服务器上怎做网站
  • wordpress 找站点wordpress调用优酷视频
  • 房产信息门户网站建设方案优化方案英语答案
  • 广州网站建设那家好塘沽网
  • 科讯cms怎么做网站地图网页制作价格表
  • 门户网站建设 突出服务哈尔滨住房和城乡建设局网站
  • 网站建站制作价格网站建设冖金手指花总十四
  • 有哪些做平面设计好素材网站做企业免费网站哪个好些