本地电脑使用Python2.7的环境。

       主要功能是用摄像头读取图片并使用SFTP服务进行传输。为了让服务器知道数据已经传输完毕了,使用SSH创建一个文件夹,通过查找这个文件夹是否存在来判定是否传输完毕。最后还是用SFTP服务进行处理完图片的回传

# -*- coding: utf-8 -*-
import os
import os.path
import paramiko
import datetime
import re
import cv2
import time
import numpy as np
config = {
    # 本地项目路径
    \'local_path\': \'C:\\project\\opencv-python\',
    # 服务器项目路径
    \'ssh_path\': \'/root/faster_rcnn3/Faster-RCNN_TF-master/data\',
    # 项目名
    \'project_name\': \'demo\',
    # 忽视列表
    \'ignore_list\': [],
    # ssh地址、端口、用户名、密码
    \'hostname\': \'fw.trinicloud.cn\',
    \'port\': 37294,
    \'username\': \'root\',
    \'password\': \'778987664\'
}

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=config[\'hostname\'], port=config[\'port\'], username=config[\'username\'],password=config[\'password\'])
# ssh传输
transport = paramiko.Transport((config[\'hostname\'], config[\'port\']))
transport.connect(username=config[\'username\'], password=config[\'password\'])
sftp = paramiko.SFTPClient.from_transport(transport)
cap=cv2.VideoCapture(0)
while True:
    #从摄像头读取图片
    sucess,img=cap.read()
    begin1 = datetime.datetime.now()
    k=cv2.waitKey(1)
    if k == 27:
        #通过esc键退出摄像
        cv2.destroyAllWindows()
        break
    res = cv2.resize(img, (400, 300), interpolation=cv2.INTER_CUBIC)
    cv2.imwrite(\"demo/image2.jpg\", res)
    print(\'数据保存完毕,保存路径demo/image2.jpg===10%\')
    local_path=\'C:\\project\\opencv-python\\demo\\image2.jpg\'
    ssh_path=\'/root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2.jpg\'
    print(\'从\'),local_path,(\'传数据到\'),ssh_path,(\'==20%\')
    sftp.put(local_path, ssh_path)
    ssh.exec_command(\'mkdir /root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2\')
    print(\'数据上传成功==25%\' )
    begin2 = datetime.datetime.now()
    stdin, stdout, stderr = ssh.exec_command(\'find /root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2\')
    result = stdout.read().decode(\'utf-8\')
    while (len(result) != 0):
        stdin, stdout, stderr = ssh.exec_command(\'find /root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2\')
        result = stdout.read().decode(\'utf-8\')
        end2_t = datetime.datetime.now()
        time_mini = float(str((end2_t - begin2))[5:14])
        print time_mini
    end2 = datetime.datetime.now()
    print(\'服务器处理完毕===50%\')
    print(\'服务器处理耗时:\'), end2 - begin2, (\'==60%\')
    src = \'/root/image2.jpg\'
    des = \'C:/project/opencv-python/image2.jpg\'
    print(\'从\'), src, (\'传数据到\'), des, (\'==70%\')
    sftp.get(src, des)
    print(\'数据回传成功==80%\')
    print(\'数据一个周期完成==99.9%\')
    end1 = datetime.datetime.now()
    print(\'花费时间是:\'), end1 - begin1, (\'==100%\')
    img = cv2.imread(\"image2.jpg\")
    cv2.destroyAllWindows()
    cv2.imshow(\"image2\", img)

 

 

 

 

收藏 打印