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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a973c2443fdb45b34c58053cf6fec44a831551572e224e7f763cf0c9dc9db51 |
|
MD5 | 9ec2f0e65f60304ba448a6975f145f45 |
|
BLAKE2b-256 | 933534eb347bef93d1a6c54a63005052474b918538f04109f208d20d2a461c95 |
File details
Details for the file multicv2resize-0.10-py3-none-any.whl
.
File metadata
- Download URL: multicv2resize-0.10-py3-none-any.whl
- Upload date:
- Size: 57.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49563ab3719ce4f7462763063f39fd918a7e1c5149ddc7a99b71f471bb1219bd |
|
MD5 | 9e58dd0c4d983643cba1a6cbf93f866a |
|
BLAKE2b-256 | f0eeba6cd269ca9b3af87e991890778d21a68af42f543a77e8f9815fdff20f90 |