working
This commit is contained in:
34
utils.py
Normal file
34
utils.py
Normal file
@ -0,0 +1,34 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
def recvall(sock, n):
|
||||
data = b''
|
||||
while len(data) < n:
|
||||
packet = sock.recv(n - len(data))
|
||||
if not packet:
|
||||
return None
|
||||
data += packet
|
||||
return data
|
||||
|
||||
def resize_with_padding(image, target_size=(640, 640)):
|
||||
h, w = image.shape[:2]
|
||||
target_w, target_h = target_size
|
||||
|
||||
# Oblicz współczynnik skalowania, zachowując proporcje
|
||||
scale = min(target_w / w, target_h / h)
|
||||
new_w, new_h = int(w * scale), int(h * scale)
|
||||
|
||||
# Resize obrazu
|
||||
resized_image = cv2.resize(image, (new_w, new_h), interpolation=cv2.INTER_AREA)
|
||||
|
||||
# Stwórz tło (czarne) o wymiarach docelowych
|
||||
output_image = np.zeros((target_h, target_w, 3), dtype=np.uint8)
|
||||
|
||||
# Oblicz offsety do wyśrodkowania obrazu
|
||||
x_offset = (target_w - new_w) // 2
|
||||
y_offset = (target_h - new_h) // 2
|
||||
|
||||
# Wklej resized image na tło
|
||||
output_image[y_offset:y_offset+new_h, x_offset:x_offset+new_w] = resized_image
|
||||
|
||||
return output_image
|
||||
Reference in New Issue
Block a user