linux系统服务器A读取远程linux系统服务器B文件(以cv读图文件为列)

文章目录

  • 前言
    • 一、读取远程文件
  • 二、应用解释


前言

当一个服务器需要处理另一个服务器上已知图像的绝对路径时,可以使用 Paramiko 库连接到远程服务器并读取图像,然后使用 OpenCV(cv2)库在本地服务器上加载和处理图像。以下是示例代码,演示了如何使用 Paramiko 和 cv2 库来实现这一操作。本文就给出应用。


一、读取远程文件

如何使用 Paramiko 和 cv2 库来处理另一个服务器上已知图像的绝对路径。首先,我们使用 Paramiko 库连接到远程服务器,并通过 SFTP 协议从远程服务器读取图像文件。然后,我们将读取的图像数据转换为 NumPy 数组,并使用 cv2 库在本地服务器上加载图像进行处理。

这段代码的关键点在于使用 Paramiko 库建立与远程服务器的连接,通过 SFTP 协议从远程服务器读取图像文件,并将图像数据转换为适合 OpenCV 处理的格式。接着,我们使用 cv2 库加载图像并进行进一步的处理或分析。

import paramiko
import os
import cv2
import numpy as np# 连接到远程服务器
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.2.93', username='ubuntu', password='ubuntu@123')# 远程服务器上的数据路径,类似os.listdir()函数
remote_data_path = '/home/auto_project/RTDETR/model_rtdetr/data'
stdin, stdout, stderr = ssh.exec_command('ls ' + remote_data_path)
file_list = stdout.read().decode('utf-8').splitlines()# 本地服务器上存储数据的路径
# local_data_path = '/path/to/local/data.csv'
# 从远程服务器下载数据到本地
# sftp = ssh.open_sftp()
# sftp.get(remote_data_path, local_data_path)
# sftp.close()
# 关闭远程连接
# ssh.close()# file_list是读取路径中所有文件
for name in file_list[:2]:if name[-3:] == 'jpg':path = os.path.join(remote_data_path, name)sftp = ssh.open_sftp()remote_file = sftp.open(path, 'r')image_data = remote_file.read()remote_file.close()sftp.close()# 将图像数据转换为numpy数组image_array = np.frombuffer(image_data, np.uint8)# 使用cv2库在本地服务器上加载图像image = cv2.imdecode(image_array, cv2.IMREAD_COLOR)print(image)if __name__ == '__main__':pass

二、应用解释

在这个示例中,我们演示了如何通过编写Python代码来实现从一个服务器读取另一个服务器上的图像文件并在本地服务器上进行处理。这种情况可能在分布式系统中的数据处理和机器学习模型训练中经常出现。首先,我们使用 Paramiko 库建立与远程服务器的安全连接。Paramiko 是一个用于远程操作的 Python 库,它支持SSH协议,可以用于执行命令、传输文件等操作。通过 Paramiko,我们可以安全地连接到远程服务器并执行各种操作。

接下来,我们使用 Paramiko 的 SFTP 功能从远程服务器读取图像文件。SFTP(SSH File Transfer Protocol)是通过 SSH 安全连接传输文件的协议。我们打开远程文件并读取其内容,然后关闭连接。得到的图像数据被转换为 NumPy 数组,这是因为 OpenCV 库通常与 NumPy 数组一起使用来表示图像数据。

最后,我们使用 OpenCV(cv2)库加载图像数据并在本地服务器上进行处理。OpenCV 是一个广泛使用的计算机视觉库,它提供了许多用于图像处理和计算机视觉任务的功能。在这个示例中,我们使用了 OpenCV 的 imdecode 函数来解码图像数据并将其加载为可用于进一步处理的图像对象。

总之,这段代码演示了如何使用 Paramiko 和 OpenCV 库来实现跨服务器的图像处理操作,为分布式系统中的数据处理和机器学习任务提供了一个简单而强大的示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# Winform翻牌子记忆小游戏

效果 源码 新建一个winform项目命名为Matching Game,选用.net core 6框架 并把Form1.cs代码修改为 using Timer System.Windows.Forms.Timer;namespace Matching_Game {public partial class Form1 : Form{private const int row 4;private const int col 4;p…

简单介绍JDK、JRE、JVM三者区别

简单介绍JDK vs JRE vs JVM三者区别 文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不…

Python:正则表达式之re.group()用法

Python正则表达式之re.group()用法学习笔记 正则表达式是在处理字符串时非常有用的工具,而re.group()是在匹配到的文本中提取特定分组内容的方法之一。 1. re.group()的基本用法 在正则表达式中,通过圆括号可以创建一个或多个分组。re.group()用于获取…

【samba】Ubuntu20.04安装 error255解决方法

目录 使用samba报错 net usershare returned error 255时(如下图)解决方法如下: 1、安装 Samba 服务: 2、配置 Samba 共享: 3、设置 Samba 用户密码: 4、重启 Samba 服务: 6、在 Windows 上…

mysql 下载和安装和修改MYSQL8.0 数据库存储文件的路径

一、第一步:下载步骤 下载链接:MySQL :: Download MySQL Installer 选择版本8.0.35,社区版, 点击 Download 下载 安装包 二、第二步:安装步骤 添加环境变量,C:\Program Files\MySQL\MySQL Server 8.0\bin 可以点开MySQL 8.0 Co…

Linux知识点易错点总结(1)

linux 2.6.* 内核默认支持的文件系统:ext3 ext2 ext4 xfsext2:全称Linux extended file system, extfs,即Linux扩展文件系统,ext2为第二代xfs:XFS一种高性能的日志文件系统,2000年5月,Silicon Graphics以GNU通用公共许可证发布这套…

C++基础1

一、形参带默认值的函数 二、inline内联函数 内联函数是一种在编译器处理时,将函数的实际代码插入到调用处的方法。通常,函数调用涉及一定的开销,包括保存和恢复调用现场、跳转到函数的代码位置等。而内联函数通过在调用处直接插入函数的代码…

Django的模板语言

文章目录 模板语法变量标签过滤器注释 组件引擎模板上下文加载器上下文处理器 模板引擎的支持配置用法引擎内置后端 模板 作为一个网络框架,Django 需要一种方便的方式来动态生成 HTML。最常见的方法是依靠模板。一个模板包含了所需 HTML 输出的静态部分&#xff0…

Centos7安装K8S

Centos7安装K8S 安装过程中没有出现的错误可以往下 根据以前一些博主写的博客,在小阳翻了不下几十篇博客之后,我果断是放弃了,于是找到了官网地址,然后也有坑 1. 关闭防火墙 systemctl stop firewalld systemctl disable firew…

MySQL的各种日志

目录 一、错误日志 二、二进制日志 1、介绍 2、作用 3、相关信息 4、日志格式 5、查看二进制文件 6、二进制日志文件删除 三、查询日志 四、慢日志 一、错误日志 记录MySQL在启动和停止时,以及服务器运行过程中发生的严重错误的相关信息,当数据库…

Hive使用shell调用命令行特殊字符处理

1.场景分析 数据处理常用hive -e的方式,通过脚本操作数仓,过程中常常遇到特殊字符的处理,如单双引号、反斜杠、换行符等,现将特殊字符用法总结使用如下,可直接引用,避免自行测试的繁琐。 2.特殊字符处理 …

16.桥接模式

桥接模式 介绍 桥接模式是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合的方式来实现,而不是继承。桥接模式通过将抽象和实现解耦,从而实现抽象和实现的分离,使得系统更加…

Java基础-Java基础知识-运算符-笔记

1.运算符 算数运算符&#xff1a; - * / % 赋值运算符&#xff1a; 定义变量的语法规则&#xff1a;类型 变量名 变量值 比较运算符&#xff1a;> < > < ! 逻辑运算符&#xff1a; &&&#xff1a;断路与&#xff0c;两边全…

Java零基础——Vue基础篇

1.【熟悉】Vue简介 1.1 简介 它是一个构建用户界面单页面的框架 Vue是一个前端框架 https://www.pmdaniu.com/#file UI网站 UI 一般开发者使用蓝湖 工具 看着UI图 写接口 https://lanhuapp.com/web/#/item 是一个轻量级的MVVM&#xff08;Model-View-ViewModel&#xff…

Spring Boot - Application Events 的发布顺序_ApplicationStartingEvent

文章目录 概述Code源码分析 概述 Spring Boot 的广播机制是基于观察者模式实现的&#xff0c;它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦&#xff0c;使得应用程序中的不同组件可以独立地改变和复用逻辑&#xff0c;而无需直接进行通信。 …

MySQL——锁

1 全局锁 上锁后&#xff0c;整个数据库处于只读状态 flush tables with read lock 释放&#xff1a; unlock tables 应用&#xff1a;用于全库逻辑备份 缺点&#xff1a;如果数据量很大&#xff0c;备份会花很多时间&#xff0c;只能读数据&#xff0c;造成业务停滞 如…

SpringBoot 基础介绍以及相关可实现的功能思路

文章目录 简介start 依赖自定义Banner日志管理devtools统一返回接口接口参数校验自定义异常调用远程接口使用 简介 Spring Boot 是基于Spring的开发开发框架&#xff0c;Spring 的缺点是具有大量的配置文件&#xff0c;使用 SpringBoot 约定大于配置&#xff0c;可以让开发者专…

VMware虚拟机忘记密码操作方法

下面已openEuler虚拟机为例&#xff1a; 1、点击重启时&#xff0c;一直按esc&#xff08;鼠标点击一下&#xff0c;确保鼠标在你的虚拟机里面&#xff09; 2、一直到进入到如下页面按e键&#xff08;可能会略有不同&#xff09; 3、按e键后跳转到如下页面 4、在该页面输入 in…

高级定时器

本节主要介绍以下内容&#xff1a; 定时器简介 高级定时器功能框图讲解 一、定时器简介 定时器功能 &#xff1a;定时、输出比较、输入捕获、断路输入 定时器分类 &#xff1a;基本定时器、通用定时器、高级定时器 定时器资源 &#xff1a;F103有2个高级定时器、4个通…

c语言-数据类型(下)

目录 4.实型变量 5.字符常量 直接常量&#xff1a; 转义字符&#xff1a; 6.字符变量 7.字符串常量 五、输出格式总结 整型&#xff1a; 浮点型&#xff1a; 字符及字符串&#xff1a; 指针&#xff08;地址&#xff09;&#xff1a; 六、typedef 七、sizeof一个问…