首页 > 编程语言 >python 线程池

python 线程池

时间:2023-02-28 17:23:11浏览次数:38  
标签:python mask args cv2 -- 线程 time path


import argparse
import os
import imageio
import cv2
import numpy as np
import time
from concurrent.futures import ThreadPoolExecutor,wait,ALL_COMPLETED,FIRST_COMPLETED, as_completed


'''
python mask2rgbaThread.py --image_path /home/***/color/%04d.jpg \
    --mask_path /home/***/mask/%04d.png \
    --n 38 \
    --save_path /home/***/rgbaThread/%04d.png

'''

def parse_args():
	parser = argparse.ArgumentParser(description="Run neural graphics primitives testbed with additional configuration & output options")

	# parser.add_argument("--camera_intrinsics", default="data/camera-intrinsics.txt", help="camera-intrinsics")
	parser.add_argument("--n", default="10", type=int,help="Set render mode.")
	# parser.add_argument("--depth_path", default="data/frame-%06d.depth.png", help="depth_path")
	parser.add_argument("--image_path", default="data/frame-%06d.color.jpg", help="image_path")
	parser.add_argument("--mask_path", default="mydata/mask/%04d.png", help="image_path")
	parser.add_argument("--debug_path", default="mydata/mask/%04d.png", help="image_path")
	parser.add_argument("--save_path", default="data/frame-%06d.png", help="Load this snapshot before training. recommended extension: .msgpack")

	args = parser.parse_args()
	return args

def rgb2rgbd(imgPath, maskPath, savePath, index):
    mask_im1 = cv2.imread(maskPath%(index))
    _, mask_im = cv2.threshold(mask_im1, 1, 255, cv2.THRESH_BINARY)


    color_im = cv2.cvtColor(cv2.imread(imgPath%(index)), cv2.COLOR_RGB2BGR)

    img_result = np.zeros((color_im.shape[0], color_im.shape[1],4), dtype=np.uint8)
    img_result[:,:, 0:3] = cv2.bitwise_and(color_im, mask_im)
    img_result[:,:,3]=mask_im[:,:,0]
    imageio.imwrite(savePath%(index), img_result)
    # cv2.namedWindow("result",cv2.WINDOW_NORMAL)
    # cv2.imshow("result",img_result)
    # # cv2.waitKey(0)


if __name__ == "__main__":
    args = parse_args()
    n_imgs = args.n
    start_time = time.time()    # 程序开始时间

    savePath = args.save_path[0:args.save_path.rfind('/')]
    # print(savePath)
    if not os.path.exists(savePath):
        os.makedirs(savePath)
    
    # 创建一个最大容纳数量为2的线程池
    # max_workers=2
    with ThreadPoolExecutor() as pool:
        print("pool._max_workers:",pool._max_workers)

        all_task=[pool.submit(rgb2rgbd, args.image_path, args.mask_path,args.save_path, i) for i in range(args.n)]

        # 主线程等待所有子线程完成
        wait(all_task, return_when=ALL_COMPLETED)
        print("----complete-----")

    end_time = time.time()    # 程序结束时间
    run_time = end_time - start_time    # 程序的运行时间,单位为秒
    print("all time:", run_time, " s")


标签:python,mask,args,cv2,--,线程,time,path
From: https://www.cnblogs.com/xiaohuidi/p/17165212.html

相关文章

  • #!/usr/bin/python到底是什么意思
    关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉Linux系统的同学需要普及这个知识,脚本语言的第一行,只对Linux/Unix用户适用,用来指定本脚本用什么解释器来......
  • 记一次 python+allure 的学习
    1、allure下载地址:https://github.com/allure-framework/allure2/releases 下载完成后,配置window的环境变量,到bin目录配置完成后,cmd命令窗口输入以下命令,检查是否......
  • Python 之 lambda 函数
    一、lambda语法lambda函数的语法只包含一个语句,表现形式如下:lambda[arg1[,arg2,.....argn]]:expression二、lambda特性lambda函数是匿名的;lambda函数有输入和输......
  • 记一次 python+allure 的学习
    1、allure下载地址:https://github.com/allure-framework/allure2/releases 下载完成后,配置window的环境变量,到bin目录 配置完成后,cmd命令窗口输入以下命令,检......
  • CCZ——python压缩纹理成ccz
    python压缩纹理资源===>cczimportosimportstructimportzlibdefccz(inputFile,outputFile,width,height):ifnotos.path.exists(inputFile):......
  • python显示屏幕点的坐标和颜色
    #encoding=utf-8importpyautoguifromPILimportImageGrabprint("将光标移到左上角0,0坐标点停止运行程序")whileTrue:#获取当前光标位置x,y=pyaut......
  • python socket 开发
    socket服务端开发#socket服务端开发importsocket#创建socket对象socket_server=socket.socket()#绑定ip地址和端口socket_server.bind(("localhost",888......
  • python+playwright 学习-17.模拟手机浏览器测试
    前言使用Playwright,您可以在任何浏览器上测试您的应用程序,也可以模拟真实设备,例如手机或平板电脑。设置手机模式只需配置您想要模拟的设备,Playwright就会模拟浏览器行......
  • 《流畅的Python》读后感
    《流畅的Python》这本书是一本非常有价值的Python编程书籍。它不仅涵盖了Python的基础知识,还深入探讨了许多高级主题,如装饰器、元类、协程等,让读者可以更深入地理解Py......
  • python对mysql数据库进行读写的操作
    python对mysql数据库进行读写的操作importpymysql#使用python连接mysql数据库,并对数据库进行添加数据的方法#创建连接,数据库主机地址数据库用户名称密码数据库......