Skip to content

Instantly share code, notes, and snippets.

@mustafaxfe
Last active February 20, 2018 20:45
Show Gist options
  • Save mustafaxfe/eb21bb7de829deaed38cf7217ae9a49b to your computer and use it in GitHub Desktop.
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...
# -*- 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