最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法

 更新時(shí)間:2019年07月15日 17:33:27   作者:肥宅_Sean  
今天小編就為大家分享一篇Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

簡(jiǎn)述

一開(kāi)始覺(jué)得這個(gè)很有趣,然后就想來(lái)做一個(gè)來(lái)玩一下

使用語(yǔ)言: Python3

使用工具:opencv視頻監(jiān)控 + socket數(shù)據(jù)傳輸技術(shù)

程序檢驗(yàn): 這里我考慮了一下,發(fā)現(xiàn)還是沒(méi)有必要實(shí)現(xiàn)封裝成可執(zhí)行文件。還是直接就放代碼吧。(先放代碼,以后再做解釋)

本程序,經(jīng)過(guò)本人修改,保證可以使用

使用要求:

Sender代碼必須要在一臺(tái)有攝像頭的電腦上運(yùn)行起來(lái)。然后把數(shù)據(jù)編碼,壓縮之后,再傳給另外一個(gè)電腦

Reciever作為接受端,沒(méi)什么特別的要求。

兩個(gè)電腦都必須要按轉(zhuǎn)好numpy + opencv (安裝方法的話,在我的opencv文集中有一篇就是寫(xiě)這個(gè)的)

對(duì)了,我的接受端關(guān)閉操作是(輸入鍵盤(pán)中的 Esc)這樣就可以退出監(jiān)控。

發(fā)送端是關(guān)閉不了這個(gè)監(jiān)控的

至于這個(gè)IP地址的設(shè)置:我寫(xiě)的都是接受端的地址。端口隨便設(shè)置的

局限性:

本程序目前只能在局域網(wǎng)內(nèi)進(jìn)行實(shí)時(shí)監(jiān)控。

改進(jìn)思路:

如果想擴(kuò)展成一個(gè)廣域網(wǎng)上的。(就可以用一個(gè)廣域網(wǎng)上的服務(wù)器做中轉(zhuǎn)站)

而且,上述的方法,如果能找到一臺(tái)肉雞,還可以避免探測(cè)到對(duì)應(yīng)的監(jiān)控對(duì)象的ip地址

代碼

Sender(發(fā)送端代碼)

import socket
import struct
import time
import cv2
import numpy


class Config(object):
  def __init__(self):
    self.TargetIP = ('192.168.199.121', 6666)
    self.resolution = (640, 480) # 分辨率
    self.img_fps = 15 # each second send pictures
    self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.server.connect(self.TargetIP)
    self.img = ''
    self.img_data = ''

  def RT_Image(self):
    camera = cv2.VideoCapture(0)
    img_param = [int(cv2.IMWRITE_JPEG_QUALITY), self.img_fps]

    while True:
      time.sleep(0.1) # sleep for 0.1 seconds
      _, self.img = camera.read()

      self.img = cv2.resize(self.img, self.resolution)

      _, img_encode = cv2.imencode('.jpg', self.img, img_param)
      img_code = numpy.array(img_encode)
      self.img_data = img_code.tostring() # bytes data
      try:

        packet = struct.pack(b'lhh', len(self.img_data), self.resolution[0],
                   self.resolution[1])
        self.server.send(packet)
        self.server.send(self.img_data)

      except Exception as e:
        print(e.args)
        camera.release()
        return


if __name__ == '__main__':
  config = Config()
  config.RT_Image()

Reciever 接受端代碼:

import socket
import cv2
import struct
import numpy
import threading


class Camera_Connect_Object(object):
  def __init__(self, TargetIP=('', 6666)):
    self.TargetIP = TargetIP
    self.resolution = (640, 480)
    self.src = 888 + 15
    self.interval = 0
    self.img_fps = 15

    self.Server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.Server.bind(self.TargetIP)
    self.Server.listen(5)

  def RT_Image(self):
    self.client, self.addr = self.Server.accept()
    self.name = self.addr[0] + " Camera"
    print(self.name)
    while True:
      # time.sleep(0.3) # sleep for 0.3 seconds
      tempdata = self.client.recv(8)
      if len(tempdata) == 0:
        print("+1")
        continue
      info = struct.unpack('lhh', tempdata)
      buf_size = int(info[0])

      if buf_size:
        try:
          self.buf = b""
          self.temp_buf = self.buf
          while buf_size:
            self.temp_buf = self.client.recv(buf_size)
            buf_size -= len(self.temp_buf)
            self.buf += self.temp_buf
          data = numpy.fromstring(self.buf, dtype='uint8')

          self.image = cv2.imdecode(data, 1)
          cv2.imshow(self.name, self.image)
        except Exception as e:
          print(e.args)
          pass
        finally:
          if cv2.waitKey(10) == 27:
            self.client.close()
            cv2.destroyAllWindows()
            break

  def Get_data(self):
    showThread = threading.Thread(target=self.RT_Image)
    showThread.start()
    showThread.join()


if __name__ == '__main__':
  camera = Camera_Connect_Object()
  camera.Get_data()

以上這篇Python3遠(yuǎn)程監(jiān)控程序的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 實(shí)現(xiàn)快速生成連續(xù)、隨機(jī)字母列表

    python 實(shí)現(xiàn)快速生成連續(xù)、隨機(jī)字母列表

    今天小編就為大家分享一篇python 實(shí)現(xiàn)快速生成連續(xù)、隨機(jī)字母列表,具有很好的價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • python模擬預(yù)測(cè)一下新型冠狀病毒肺炎的數(shù)據(jù)

    python模擬預(yù)測(cè)一下新型冠狀病毒肺炎的數(shù)據(jù)

    這篇文章主要介紹了python模擬預(yù)測(cè)一下新型冠狀病毒肺炎的數(shù)據(jù) ,需要的朋友可以參考下
    2020-02-02
  • 對(duì)numpy中軸與維度的理解

    對(duì)numpy中軸與維度的理解

    下面小編就為大家分享一篇對(duì)numpy中軸與維度的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python pyautogui實(shí)現(xiàn)圖片識(shí)別點(diǎn)擊失敗后重試功能

    python pyautogui實(shí)現(xiàn)圖片識(shí)別點(diǎn)擊失敗后重試功能

    這篇文章主要介紹了python pyautogui實(shí)現(xiàn)圖片識(shí)別點(diǎn)擊失敗后重試效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 如何用六步教會(huì)你使用python爬蟲(chóng)爬取數(shù)據(jù)

    如何用六步教會(huì)你使用python爬蟲(chóng)爬取數(shù)據(jù)

    網(wǎng)絡(luò)爬蟲(chóng)就是按照一定規(guī)則自動(dòng)訪問(wèn)互聯(lián)網(wǎng)上的信息并把內(nèi)容下載下來(lái)的程序或腳本,下面這篇文章主要給大家介紹了關(guān)于如何用六步教會(huì)你使用python爬蟲(chóng)爬取數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 如何在Python中進(jìn)行異常處理

    如何在Python中進(jìn)行異常處理

    這篇文章主要介紹了如何在Python中進(jìn)行異常處理,Python中使用用異常對(duì)象(exception object)表示異常情況,當(dāng)程序運(yùn)行遇到錯(cuò)誤后,就會(huì)觸發(fā)發(fā)異常,下文關(guān)于異常處理的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Pandas數(shù)據(jù)結(jié)構(gòu)之Series的使用

    Pandas數(shù)據(jù)結(jié)構(gòu)之Series的使用

    本文主要介紹了Pandas數(shù)據(jù)結(jié)構(gòu)之Series的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 為什么相對(duì)PHP黑python的更少

    為什么相對(duì)PHP黑python的更少

    在本篇內(nèi)容里小編給各位整理了關(guān)于為什么相對(duì)PHP黑python的更少的原因和知識(shí)點(diǎn),需要的朋友們可以參考下。
    2020-06-06
  • Python數(shù)據(jù)類型中的元組Tuple

    Python數(shù)據(jù)類型中的元組Tuple

    這篇文章主要介紹了Python數(shù)據(jù)類型中的元組Tuple,元組可以理解為一個(gè)只讀列表,用()來(lái)標(biāo)識(shí),下文圍繞元組展開(kāi)詳細(xì)資料,需要的小伙伴可以參考一下
    2022-02-02
  • python 和c++實(shí)現(xiàn)旋轉(zhuǎn)矩陣到歐拉角的變換方式

    python 和c++實(shí)現(xiàn)旋轉(zhuǎn)矩陣到歐拉角的變換方式

    今天小編就為大家分享一篇python 和c++實(shí)現(xiàn)旋轉(zhuǎn)矩陣到歐拉角的變換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論

米泉市| 吴川市| 苍溪县| 海丰县| 祁阳县| 阿图什市| 南昌县| 贡觉县| 广水市| 泰州市| 嘉祥县| 彭山县| 东乌| 茶陵县| 当涂县| 天水市| 寻乌县| 绥芬河市| 平原县| 新泰市| 韩城市| 应用必备| 胶南市| 车致| 社会| 双鸭山市| 色达县| 河北区| 腾冲县| 玉林市| 抚宁县| 平邑县| 涿州市| 台山市| 建昌县| 蓬莱市| 噶尔县| 囊谦县| 永济市| 石阡县| 台东县|