# pip install opencv-python
# podstawowe funkcje
# Wczytaj obraz (zamień 'obraz.jpg' na własną nazwę pliku)
image_path = "obraz.jpg"
img = cv2.imread(image_path)
# Zapisz obraz z wykrytymi obiektami
cv2.imwrite("wynik.jpg", img)
import cv2
image_path = "bok10.jpg"
img = cv2.imread(image_path)
cv2.imshow("newbok10",img)
cv2.imwrite("newimg.jpg",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Łączenie z kamerą i otwieranie okienka z obrazem z OPEN CV
# pip install opencv-python
import cv2
# Otwórz kamerę (0 to domyślna kamera)
cap = cv2.VideoCapture(1)
if not cap.isOpened():
print("Błąd: Nie można otworzyć kamery")
exit()
while True:
ret, frame = cap.read()
if not ret:
print("Błąd: Nie można pobrać obrazu")
break
cv2.imshow("Podgląd kamery", frame)
# Czekaj na klawisz 'q' do zamknięcia okna
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Wykrywanie obiektów z YOLO
zdjęcie użyte w przykładach: https://pixabay.com/photos/street-sunset-building-urban-city-7544046/
# pip install ultralytics opencv-python numpy
import cv2
from ultralytics import YOLO
# Załaduj model YOLOv8 (pretrenowany na COCO)
model = YOLO("yolov8n.pt") # Możesz użyć też "yolov8s.pt"
# Otwórz kamerę
cap = cv2.VideoCapture(1)
if not cap.isOpened():
print("Błąd: Nie można otworzyć kamery")
exit()
while True:
ret, frame = cap.read()
if not ret:
print("Błąd: Nie można pobrać obrazu")
break
# Wykrywanie obiektów
results = model(frame)
# Rysowanie wykrytych obiektów na obrazie
for r in results:
for box in r.boxes:
x1, y1, x2, y2 = map(int, box.xyxy[0])
label = f"{model.names[int(box.cls[0])]} {box.conf[0]:.2f}"
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(frame, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# Pokaż obraz z wykrytymi obiektami
cv2.imshow("YOLOv8 - Wykrywanie obiektów", frame)
# Wyjdź po naciśnięciu 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Wykrywanie obiektów na zdjęciu z open cv i YOLO
import cv2
from ultralytics import YOLO
# Załaduj model YOLOv8 (możesz użyć yolov8n.pt, yolov8s.pt itd.)
model = YOLO("yolov8n.pt")
# Wczytaj obraz (zamień 'obraz.jpg' na własną nazwę pliku)
image_path = "street.jpg"
img = cv2.imread(image_path)
if img is None:
print("Błąd: Nie można załadować obrazu. Sprawdź ścieżkę do pliku!")
exit()
# Wykrywanie obiektów na obrazie
results = model(img)
# Rysowanie wykrytych obiektów na obrazie
for r in results:
for box in r.boxes:
x1, y1, x2, y2 = map(int, box.xyxy[0]) # Współrzędne bounding boxa
label = f"{model.names[int(box.cls[0])]} {box.conf[0]:.2f}" # Nazwa obiektu + pewność
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(img, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# Pokaż obraz z wykrytymi obiektami
cv2.imshow("Wykryte obiekty", img)
cv2.imwrite("wynik.jpg", img) # Zapisz obraz z wykrytymi obiektami
cv2.waitKey(0) # Czeka na klawisz
cv2.destroyAllWindows()
Obliczanie ilości osób na zdjęciu
import cv2
from ultralytics import YOLO
# Załaduj model YOLOv8
model = YOLO("yolov8n.pt") # Możesz użyć dokładniejszego np. "yolov8s.pt"
# Wczytaj obraz
image_path = "street.jpg" # Podmień na własny plik
img = cv2.imread(image_path)
if img is None:
print("Błąd: Nie można załadować obrazu!")
exit()
# Wykrywanie obiektów
results = model(img)
# Licznik osób
person_count = 0
# Rysowanie wykrytych obiektów i liczenie osób
for r in results:
for box in r.boxes:
class_id = int(box.cls[0]) # Pobierz ID klasy
label = model.names[class_id] # Pobierz nazwę klasy
if label == "person": # Sprawdź, czy to osoba
person_count += 1
x1, y1, x2, y2 = map(int, box.xyxy[0]) # Pobierz współrzędne
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(img, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# Pokaż wynik
print(f"Liczba osób na zdjęciu: {person_count}")
cv2.imshow("Wykryte osoby", img)
cv2.waitKey(0)
cv2.destroyAllWindows()