DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Перехоплення програмою управління відеопотоком з відеокамери

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
АСУ

Інформація про роботу

Рік:
2018
Тип роботи:
Лабораторна робота
Предмет:
Проблемно-орієнтовані методи та засоби комп’ютерних інформаційних технологій

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Інститут ІКНІ Кафедра АСУ ЗВІТ До лабораторної роботи № 2 На тему: «Перехоплення програмою управління відеопотоком з відеокамери» З дисципліни: «Методи і засоби комп’ютерних інформаційних технологій» Львів – 2018 Хід роботи Код програми: import PIL.Image import numpy as np import cv2 import os from tkinter import * import time def FileWrite(value, id ): # функція для запису і перетворення числа f = open(str(id) + ".txt", "a") # відкриття файлу і добавлення нових записів в кінець f.write("\n") f.write("{0:08b}".format(value)) # форматування зовнішнього вигляду і запис def ImgToBin(id): # функція для перетворення зображення у бінарний код fp = open( "imgs/" + str(id) + ".png", "rb") # відкрити файл у бінарному вигляді для читання img = PIL.Image.open(fp) # створити об'єкт типу image і повернути дескриптор pixel = img.load() # перетворення і запис файлу у пам"ять i = 0 stime = time.time() # отримати час на даний момент while i < img.size[0]: # цикл для обходу всіх рядків j = 0 while j < img.size[1]: # цикл для обходу всіх стовпців FileWrite(pixel[i, j][0], id) # запис кольору у файл у бінарному вигляді FileWrite(pixel[i, j][1], id) FileWrite(pixel[i, j][2], id) j += 1 if(j > 10): break i += 1 if(i > 5): break print(" s ", time.time() - stime) # вивести час затрачений на виконання функції def all(event): camid = (int)(camIdGet.get()) # отримати ідентифікатор камери із поля для вводу period = (int)(shotCounter.get()) # отримати період для запису deltaTime = (float)(setTime.get()) # отримати час на виконання tmp = period i = 0 captured = 0 cap = cv2.VideoCapture(camid) # створення об'єкту типу VideoCapture stime = time.time() while abs(stime - time.time()) < deltaTime: # цикл виконуватиметься поки час виконання не буде більший за заданий ret, frame = cap.read() # зчитування зображення cv2.imshow('frame', frame) # показати зображення у окремому вікні cv2.waitKey(1) # пауза if (i == period ): cv2.imwrite(os.path.join("imgs", '%d.png') % captured, frame) # записати зображення як файл у форматі png captured += 1 period += tmp i += 1 cap.release() # видалити обєкт cv2.destroyAllWindows() # закрити всі вікна while captured != 0: ImgToBin(captured - 1) # перетворення зображень у бінарний код captured -= 1 root = Tk() # базове вікно l = Label(bg='black', fg='white', width=40, text = "cam id:") # мітка для виводу інформації camIdGet = Entry(width=20) # поле для зчитування L1 = Label(bg='black', fg='white', width=40, text = "Photo counter(every n):") shotCounter = Entry(width=20) L2 = Label(bg='black', fg='white', width=40, text = "End time(in seconds):") setTime = Entry(width=20) b = Button(text = " start ") # кнопка b.bind('<Button-1>', all) # привязування функіції до кнопки l.pack() #розміщення елементів на головному вікні послідовно camIdGet.pack() L1.pack() shotCounter.pack() L2.pack() setTime.pack() b.pack() root.mainloop() # створити головний цикл #set cam id; shot counter; time of capture Результат роботи програми: / 11010001 10110100 10010100 11001111 10110100 10011100 11001110 10110010 10100110 11001100 10101111 10101000 11011010 11000000 10110100 … Висновок При виконанні лабораторної роботи було розроблено програму для перехоплення управління відео потоком із камери і запису заздалегідь визначених кадрів у двійковому коді.
Антиботан аватар за замовчуванням

08.11.2018 17:58

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!