Last active
February 20, 2018 20:45
-
-
Save mustafaxfe/eb21bb7de829deaed38cf7217ae9a49b to your computer and use it in GitHub Desktop.
It is one of the works for UTI project of MIPS Medical. It simply captures frame from your camera and divide them into (.png)s...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
# ============================================================================================================================================ | |
# Name : divideFrames.py | |
# Author : Mustafa Sarialp | |
# Version : 1.0 | |
# Copyright : Apache Licence V2 | |
# Description : This is a python script to handle dividing video into frames without recording it. It using sleep function to handle dividing. | |
# Description (TR): Bu betik vidyo kaydetmeden sleep fonksiyonunu kullanarak kareler elde etmeye yarar. | |
# ============================================================================================================================================ | |
import cv2 | |
import time | |
class GetFrames: | |
def __init__(self): | |
#Kaydedeceği yeri belirlemek istersen (self.imgpath = 'C:\\tmp\\scriptTest\\frames') | |
self.cap = " " | |
self.start = 1.0 | |
self.end = 2.0 | |
self.frames = 0 | |
self.counter = 0 | |
self.gap = 0 | |
# elif inp | |
def getValues(self): | |
while True: | |
self.start = float(input('Karelere kaçıncı saniye sonra başlanacağını gir> ')) | |
if self.start < 0.0: | |
self.start = float(input("'{}' değeri geçerli değil. Tekrar dene> ".format(self.start))) | |
elif self.start > 0.0: | |
break | |
while True: | |
self.end = float(input('Kaçıncı saniyeye kadar kare alınacağını gir> ')) | |
if self.end <= self.start: | |
self.end = float(input("'{}' değeri geçerli değil. Tekrar dene> ".format(self.end))) | |
elif self.end > self.start: | |
break | |
while True: | |
self.gap = int(input('Kaç saniye aralığında kare alınacağını gir> ')) | |
if self.gap < 0 or type(self.gap) is not int or self.gap >= self.end: | |
self.gap = int(input("'{}' değeri geçerli değil. Tekrar dene> ".format(self.gap))) | |
elif self.gap > 0 and self.gap < self.end: | |
break | |
while True: | |
self.frames = int(input("Kaç kare alınacağını gir> ")) | |
if self.frames <= 0 or self.frames > self.end: | |
self.frames = int(input("'{}' değeri geçerli değil. Tekrar dene> ".format(self.frames))) | |
elif self.frames > 0 and self.frames < self.end: | |
break | |
def divideFrames(self): | |
"Bu fonksiyon video görüntüsünü alır ve karelere ayırır" | |
# return_value, img = self.cap.read() | |
time.sleep(self.start) | |
self.cap = cv2.VideoCapture(0) | |
for i in range(self.frames): | |
return_value, img = self.cap.read() | |
self.counter += self.gap | |
if self.counter >= (self.end - self.start): | |
cv2.imwrite('opencv'+str(i)+'.png', img) | |
print("Hey") | |
return | |
else: | |
cv2.imwrite('opencv'+str(i)+'.png', img) | |
# Kaydedeceği yeri seçmek için (cv2.imwrite(str(self.imgpath)+'opencv'+str(i)+'.png', img) | |
time.sleep(self.gap) | |
#self.length = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) | |
self.cap.release() | |
#out.release() | |
cv2.destroyAllWindows() | |
def main(): | |
myFrames = GetFrames() | |
myFrames.getValues() | |
myFrames.divideFrames() | |
if __name__ == "__main__": | |
#print("test") | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment