Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

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

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

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

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

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

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Інститут ІКНІ Кафедра АСУ ЗВІТ До лабораторної роботи № 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:11

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини