本地电脑使用Python2.7的环境。
主要功能是用摄像头读取图片并使用SFTP服务进行传输。为了让服务器知道数据已经传输完毕了,使用SSH创建一个文件夹,通过查找这个文件夹是否存在来判定是否传输完毕。最后还是用SFTP服务进行处理完图片的回传
我用以下代码和服务器上的faster-rcnn配合,实现本地端的目标检测。
# -*- 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:projectopencv-python',# 服务器项目路径'ssh_path': '/root/faster_rcnn3/Faster-RCNN_TF-master/data',# 项目名'project_name': 'demo',# 忽视列表'ignore_list': [],# ssh地址、端口、用户名、密码'hostname': inicloud','port': 37294,'username': 'root','password': '778987664'
}ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
t(hostname=config['hostname'], port=config['port'], username=config['username'],password=config['password'])
# ssh传输
transport = paramiko.Transport((config['hostname'], config['port']))
t(username=config['username'], password=config['password'])
sftp = paramiko.SFTPClient.from_transport(transport)
cap=cv2.VideoCapture(0)
while True:#从摄像头读取图片sucess,imgad()begin1 = w()k=cv2.waitKey(1)if k == 27:#通过esc键退出摄像cv2.destroyAllWindows()breakres = size(img, (400, 300), interpolation=cv2.INTER_CUBIC)cv2.imwrite("demo/image2.jpg", res)print('数据保存完毕,保存路径demo/image2.jpg===10%')local_path='C:projectopencv-pythondemoimage2.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__command('mkdir /root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2')print('数据上传成功==25%' )begin2 = w()stdin, stdout, stderr = _command('find /root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2')result = ad().decode('utf-8')while (len(result) != 0):stdin, stdout, stderr = _command('find /root/faster_rcnn3/Faster-RCNN_TF-master/data/demo/image2')result = ad().decode('utf-8')end2_t = w()time_mini = float(str((end2_t - begin2))[5:14])print time_miniend2 = w()print('服务器处理完毕===50%')print('服务器处理耗时:'), end2 - begin2, ('==60%')src = '/root/image2.jpg'des = 'C:/project/opencv-python/image2.jpg'print('从'), src, ('传数据到'), des, ('==70%')(src, des)print('数据回传成功==80%')print('数据一个周期完成==99.9%')end1 = w()print('花费时间是:'), end1 - begin1, ('==100%')img = cv2.imread("image2.jpg")cv2.destroyAllWindows()cv2.imshow("image2", img)
本文发布于:2024-01-28 08:00:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064000585964.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |