Skip to main content

Parallelized image resizing function using OpenCV and multiprocessing

Project description

Parallelized image resizing function using OpenCV and multiprocessing

pip install multicv2resize

Tested against Python 3.11 / Windows 10

Parallelized image resizing function using OpenCV and multiprocessing.

This function utilizes the `multiprocnomain` library for parallelizing the resizing process of a batch of images.
The resizing parameters for each image in the batch are specified in a list of dictionaries,
allowing for flexibility in resizing options.

Parameters:
	- pics (list): A list of dictionaries, each containing the following keys:
		- 'img' (Any): Accepts almost any image format
		- 'width' (int, optional): The target width of the resized image. If None, the original width is maintained. - IMPORTANT: (pass either width, height, width and height, or percentage)
		- 'height' (int, optional): The target height of the resized image. If None, the original height is maintained. - IMPORTANT: (pass either width, height, width and height, or percentage)
		- 'percent' (int, optional): The percentage by which to scale the image.  - IMPORTANT: (pass either width, height, width and height, or percentage)
		- 'interpolation' (int, optional): The interpolation method to use during resizing.
		  Defaults to cv2.INTER_AREA.

	- processes (int, optional): The number of parallel processes to use for resizing. Defaults to 5.

	- chunks (int, optional): The number of chunks to divide the resizing tasks into for better load balancing. Defaults to 1.

	- print_stderr (bool, optional): If True, prints stderr messages during the resizing process. Defaults to True.

	- print_stdout (bool, optional): If True, prints stdout messages during the resizing process. Defaults to False.

Returns:
	- dict: A dictionary containing resized images corresponding to the input batch. The keys are generated based on the input image paths.

Example:

	pics0 = [{'img':r"C:\Users\hansc\Pictures\cgea.png",'width':None,'height':None,'percent':percentage,'interpolation':cv2.INTER_AREA} for percentage in range(50,150,1)]
	pics1 = [{'img':r"C:\Users\hansc\Pictures\cgea.png",'width':100+addwidth,'height':100,'percent':None,'interpolation':cv2.INTER_AREA} for addwidth in range(50,150,1)]
	pics=pics0+pics1

	pic=resize_image(pics,processes=5,chunks=1,print_stderr=True, print_stdout=False)
	for k, v in pic.items():
		cv2.imwrite(rf'C:\resi\{k}.png', v)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multicv2resize-0.10.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

multicv2resize-0.10-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file multicv2resize-0.10.tar.gz.

File metadata

  • Download URL: multicv2resize-0.10.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for multicv2resize-0.10.tar.gz
Algorithm Hash digest
SHA256 0a973c2443fdb45b34c58053cf6fec44a831551572e224e7f763cf0c9dc9db51
MD5 9ec2f0e65f60304ba448a6975f145f45
BLAKE2b-256 933534eb347bef93d1a6c54a63005052474b918538f04109f208d20d2a461c95

See more details on using hashes here.

File details

Details for the file multicv2resize-0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for multicv2resize-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 49563ab3719ce4f7462763063f39fd918a7e1c5149ddc7a99b71f471bb1219bd
MD5 9e58dd0c4d983643cba1a6cbf93f866a
BLAKE2b-256 f0eeba6cd269ca9b3af87e991890778d21a68af42f543a77e8f9815fdff20f90

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page