mirror of
https://github.com/bdrtr/BIRD-NEST.git
synced 2025-11-08 19:02:46 +00:00
Add files via upload
This commit is contained in:
parent
6cf43f2e58
commit
d3f8b299c2
202
main.py
Normal file
202
main.py
Normal file
@ -0,0 +1,202 @@
|
||||
from ultralytics import YOLO
|
||||
from window import Ui_Dialog
|
||||
from PyQt5.QtWidgets import *
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtCore import *
|
||||
from PyQt5.QtTest import *
|
||||
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QFileDialog
|
||||
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
|
||||
from PyQt5.QtMultimediaWidgets import QVideoWidget
|
||||
from PyQt5.QtCore import QUrl
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
import os, cv2
|
||||
import threading
|
||||
|
||||
#os.environ["QT_QPA_PLATFORM"] = "xcb"
|
||||
|
||||
|
||||
class Program(QMainWindow):
|
||||
|
||||
def __init__ (self):
|
||||
super().__init__()
|
||||
self.userInterface = Ui_Dialog()
|
||||
self.userInterface.setupUi(self)
|
||||
self.setWindowTitle("KUŞ YUVASI BUL")
|
||||
self.setWindowFlag(False)
|
||||
|
||||
#self.setWindowIcon()
|
||||
|
||||
|
||||
self.path = None
|
||||
self.filename = None
|
||||
self.total_frames=1
|
||||
self.frame_counter=1
|
||||
self.local_flag = False
|
||||
self.url_flag = False
|
||||
|
||||
self.timer= None
|
||||
self.progress_rate=0
|
||||
|
||||
self.Texts = []
|
||||
|
||||
self.buttons = [
|
||||
self.userInterface.pushButton
|
||||
]
|
||||
|
||||
self.graphics = [
|
||||
self.userInterface.media_player,
|
||||
self.userInterface.video_widget
|
||||
]
|
||||
|
||||
self.plainTexts = [
|
||||
self.userInterface.plainTextEdit
|
||||
]
|
||||
|
||||
self.labels = [
|
||||
self.userInterface.label
|
||||
]
|
||||
|
||||
self.radio_buttons = [
|
||||
self.userInterface.radioButton,
|
||||
self.userInterface.radioButton_2
|
||||
]
|
||||
|
||||
self.progress = [
|
||||
self.userInterface.progess_bar
|
||||
]
|
||||
|
||||
|
||||
self.moves()
|
||||
|
||||
|
||||
|
||||
def readText(self):
|
||||
text = self.plainTexts[0].toPlainText()
|
||||
self.Texts.append(text)
|
||||
self.open_media()
|
||||
|
||||
def moves(self):
|
||||
self.radio_button_select()
|
||||
self.buttons[0].clicked.connect(self.readText)
|
||||
|
||||
|
||||
|
||||
|
||||
def radio_button_select(self):
|
||||
|
||||
if self.radio_buttons[0].isChecked():
|
||||
self.local_flag = True
|
||||
self.url_flag = False
|
||||
self.plainTexts[0].setEnabled(True)
|
||||
|
||||
elif self.radio_buttons[1].isChecked():
|
||||
self.local_flag = True
|
||||
self.url_flag = False
|
||||
self.plainTexts[0].setEnabled(False)
|
||||
|
||||
else:
|
||||
self.labels[0].setText("bir işaretleme yapın..")
|
||||
self.local_flag = False
|
||||
self.url_flag = False
|
||||
|
||||
def model_youtube(self):
|
||||
model = YOLO('best.pt')
|
||||
results = model(self.path, stream=True, save=True, conf=0.5)
|
||||
|
||||
|
||||
def model(self):
|
||||
|
||||
model = YOLO('best.pt')
|
||||
|
||||
#fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
||||
#output_path = os.path.join(os.getcwd(), 'videos', 'output.mp4')
|
||||
#out = cv2.VideoWriter(output_path, fourcc, 60.0, (640, 480))
|
||||
|
||||
cap = cv2.VideoCapture(self.path)
|
||||
self.total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
|
||||
self.frame_counter=1
|
||||
cap.release()
|
||||
|
||||
results = model(self.path, stream=True, save=True, conf=0.5)
|
||||
for res in results:
|
||||
self.frame_counter+=1
|
||||
self.progress_rate = (int(self.frame_counter)/int(self.total_frames))*100
|
||||
|
||||
|
||||
"""
|
||||
while cap.isOpened():
|
||||
|
||||
success, frame = cap.read()
|
||||
#results = model(frame, conf=0.5)
|
||||
|
||||
for result in results:
|
||||
|
||||
result.show()
|
||||
|
||||
annotated_frame = results[0].plot()
|
||||
|
||||
#cv2.imshow("YOLOv8 ile Kus yuvasi", annotated_frame)
|
||||
self.frame_counter+=1
|
||||
#cv2.imshow("frame", annotated_frame)
|
||||
|
||||
|
||||
#out.write(annotated_frame)
|
||||
self.progress_rate = (int(self.frame_counter)/int(self.total_frames))*100
|
||||
|
||||
else:
|
||||
break
|
||||
|
||||
cap.release()
|
||||
#out.release()
|
||||
cv2.destroyAllWindows()
|
||||
"""
|
||||
|
||||
|
||||
def showVideo(self):
|
||||
|
||||
if self.path != '':
|
||||
self.plainTexts[0].setPlainText(self.path)
|
||||
self.graphics[0].setMedia(QMediaContent(QUrl.fromLocalFile(self.path)))
|
||||
self.graphics[0].play()
|
||||
|
||||
def open_media(self):
|
||||
|
||||
if self.radio_buttons[0].isChecked():
|
||||
self.radio_button_select()
|
||||
self.model_youtube()
|
||||
|
||||
elif self.radio_buttons[1].isChecked():
|
||||
self.radio_button_select()
|
||||
|
||||
thred1 = threading.Thread(target=self.model)
|
||||
self.path, self.filename = QFileDialog.getOpenFileName(self, "Video Dosyası Seç", "", "Video Dosyaları (*.mp4 *.avi *.mkv)")
|
||||
self.showVideo()
|
||||
thred1.start()
|
||||
self.start_progress()
|
||||
|
||||
else:
|
||||
self.radio_button_select()
|
||||
self.labels[0].setText("hatali islem")
|
||||
|
||||
|
||||
def start_progress(self):
|
||||
self.progress[0].setValue(0)
|
||||
self.timer = QTimer()
|
||||
self.timer.timeout.connect(self.update_progress)
|
||||
self.timer.start(1000)
|
||||
|
||||
def update_progress(self):
|
||||
|
||||
if int(self.frame_counter) < int(self.total_frames) and int(self.frame_counter) != 0:
|
||||
self.progress[0].setValue(int(self.progress_rate))
|
||||
else :
|
||||
self.timer.stop()
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
app = QApplication(sys.argv)
|
||||
prog = Program()
|
||||
prog.show()
|
||||
sys.exit(app.exec_())
|
||||
Loading…
Reference in New Issue
Block a user