Reference for ultralytics/utils/patches.py
Note
This file is available at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/patches.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!
ultralytics.utils.patches.imread
imread(filename: str, flags: int = cv2.IMREAD_COLOR) -> Optional[np.ndarray]
Read an image from a file with multilanguage filename support.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filename
|
str
|
Path to the file to read. |
required |
flags
|
int
|
Flag that can take values of cv2.IMREAD_*. Controls how the image is read. |
IMREAD_COLOR
|
Returns:
Type | Description |
---|---|
ndarray | None
|
The read image array, or None if reading fails. |
Examples:
>>> img = imread("path/to/image.jpg")
>>> img = imread("path/to/image.jpg", cv2.IMREAD_GRAYSCALE)
Source code in ultralytics/utils/patches.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
ultralytics.utils.patches.imwrite
imwrite(
filename: str, img: ndarray, params: Optional[List[int]] = None
) -> bool
Write an image to a file with multilanguage filename support.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filename
|
str
|
Path to the file to write. |
required |
img
|
ndarray
|
Image to write. |
required |
params
|
List[int]
|
Additional parameters for image encoding. |
None
|
Returns:
Type | Description |
---|---|
bool
|
True if the file was written successfully, False otherwise. |
Examples:
>>> import numpy as np
>>> img = np.zeros((100, 100, 3), dtype=np.uint8) # Create a black image
>>> success = imwrite("output.jpg", img) # Write image to file
>>> print(success)
True
Source code in ultralytics/utils/patches.py
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
ultralytics.utils.patches.imshow
imshow(winname: str, mat: ndarray) -> None
Display an image in the specified window with multilanguage window name support.
This function is a wrapper around OpenCV's imshow function that displays an image in a named window. It handles multilanguage window names by encoding them properly for OpenCV compatibility.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
winname
|
str
|
Name of the window where the image will be displayed. If a window with this name already exists, the image will be displayed in that window. |
required |
mat
|
ndarray
|
Image to be shown. Should be a valid numpy array representing an image. |
required |
Examples:
>>> import numpy as np
>>> img = np.zeros((300, 300, 3), dtype=np.uint8) # Create a black image
>>> img[:100, :100] = [255, 0, 0] # Add a blue square
>>> imshow("Example Window", img) # Display the image
Source code in ultralytics/utils/patches.py
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
|
ultralytics.utils.patches.torch_load
torch_load(*args, **kwargs)
Load a PyTorch model with updated arguments to avoid warnings.
This function wraps torch.load and adds the 'weights_only' argument for PyTorch 1.13.0+ to prevent warnings.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*args
|
Any
|
Variable length argument list to pass to torch.load. |
()
|
**kwargs
|
Any
|
Arbitrary keyword arguments to pass to torch.load. |
{}
|
Returns:
Type | Description |
---|---|
Any
|
The loaded PyTorch object. |
Notes
For PyTorch versions 2.0 and above, this function automatically sets 'weights_only=False' if the argument is not provided, to avoid deprecation warnings.
Source code in ultralytics/utils/patches.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
|
ultralytics.utils.patches.torch_save
torch_save(*args, **kwargs)
Save PyTorch objects with retry mechanism for robustness.
This function wraps torch.save with 3 retries and exponential backoff in case of save failures, which can occur due to device flushing delays or antivirus scanning.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*args
|
Any
|
Positional arguments to pass to torch.save. |
()
|
**kwargs
|
Any
|
Keyword arguments to pass to torch.save. |
{}
|
Examples:
>>> model = torch.nn.Linear(10, 1)
>>> torch_save(model.state_dict(), "model.pt")
Source code in ultralytics/utils/patches.py
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
|