91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python3怎么遠程監控程序

發布時間:2021-05-20 17:44:32 來源:億速云 閱讀:170 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用Python3怎么遠程監控程序,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

使用要求:

Sender代碼必須要在一臺有攝像頭的電腦上運行起來。然后把數據編碼,壓縮之后,再傳給另外一個電腦

Reciever作為接受端,沒什么特別的要求。

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

對了,我的接受端關閉操作是(輸入鍵盤中的 Esc)這樣就可以退出監控。

發送端是關閉不了這個監控的

至于這個IP地址的設置:我寫的都是接受端的地址。端口隨便設置的

局限性:

本程序目前只能在局域網內進行實時監控。

改進思路:

如果想擴展成一個廣域網上的。(就可以用一個廣域網上的服務器做中轉站)

而且,上述的方法,如果能找到一臺肉雞,還可以避免探測到對應的監控對象的ip地址

代碼

Sender(發送端代碼)

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怎么遠程監控程序了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏边| 石家庄市| 西畴县| 内丘县| 桦甸市| 桃江县| 临泉县| 江门市| 平阳县| 咸丰县| 离岛区| 湖北省| 穆棱市| 乐东| 义马市| 车致| 盐城市| 南川市| 平阴县| 永寿县| 张家口市| 会泽县| 八宿县| 鄂托克旗| 舒兰市| 永安市| 舞钢市| 抚州市| 宜丰县| 盖州市| 策勒县| 凭祥市| 新邵县| 进贤县| 花莲市| 合阳县| 柘荣县| 札达县| 潜江市| 贵德县| 聊城市|