Linux环境下提取图片资源的常见方法
在Linux系统中,“提取图片资源”可分为从网络下载图片、从本地目录搜索图片、从视频/ROS包中提取帧图像、从归档文件中提取图片等场景,以下是具体操作方法:
1. 从网络下载图片资源
若需从网络URL获取图片,可使用wget或curl命令:
- wget:直接下载图片到当前目录,或通过
-P参数指定目标目录。wget http://example.com/image.jpg # 下载到当前目录 wget -P /path/to/directory/ http://example.com/image.jpg # 下载到指定目录 - curl:通过
-o参数指定保存的文件名及路径。curl -o image.jpg http://example.com/image.jpg # 保存为image.jpg(当前目录) curl -o /path/to/directory/image.jpg http://example.com/image.jpg # 保存到指定目录
若需批量下载网页中的图片,可结合grep、sed提取网页源码中的图片链接(如.jpg、.png),再用wget/curl下载。
2. 在本地目录中搜索图片资源
若需查找本地目录(包括子目录)中的图片文件,可使用find命令结合通配符:
find /path/to/search -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.gif" \)
上述命令会递归搜索/path/to/search目录下所有扩展名为.jpg、.png、.gif的图片文件。
3. 从视频/ROS包中提取帧图像
-
从视频提取帧:使用
ffmpeg工具,可按帧率或间隔提取视频帧并保存为图片。ffmpeg -i input_video.mp4 -vf "select='not(mod(n,10))'" -frames:v 5 -q:v 1 output_%03d.jpg参数说明:
-i指定输入视频路径;-vf "select='not(mod(n,10))'"表示每10帧提取1帧;-frames:v 5表示共提取5帧;-q:v 1表示输出图片质量(1-31,值越小质量越高);output_%03d.jpg表示输出文件名(如output_001.jpg)。 -
从ROS包(.bag文件)提取帧:
- 方法1(不带时间戳):通过
image_view工具的extract_images节点提取,提取的图片保存在~/.ros目录下。# 创建export.launch文件(内容如下) echo '["否", "image_view extract_images节点配置", " ')" > export.launch # 运行roscore和launch文件 roscore roslaunch export.launch", " ", "", " - 方法2(带时间戳):使用Python脚本读取bag文件,将每帧图像以时间戳命名保存。
#!/usr/bin/env python import rosbag from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 bag = rosbag.Bag('input.bag') bridge = CvBridge() output_dir = "/path/to/save/images/" for topic, msg, t in bag.read_messages(topics=['/camera/color/image_raw']): try: cv_image = bridge.imgmsg_to_cv2(msg, "bgr8") timestamp = str(t.to_sec()).replace('.', '_') cv2.imwrite(f"{output_dir}{timestamp}.jpg", cv_image) except Exception as e: print(f"Error processing message: {e}") bag.close()
保存为
extract_rosbag.py后运行:python extract_rosbag.py。 - 方法1(不带时间戳):通过
4. 从归档文件中提取图片资源
若图片存储在.tar、.tar.gz、.zip等归档文件中,可使用tar或unzip命令提取:
-
解压tar.gz文件:
tar -xzvf archive.tar.gz -C /path/to/destination参数说明:
-x表示提取;-z表示解压gzip格式;-v表示显示详细过程;-f指定归档文件路径;-C指定目标目录。 -
解压zip文件:需先安装
unzip工具(sudo apt install unzip),再运行:unzip archive.zip -d /path/to/destination
以上方法覆盖了Linux环境下常见的图片资源提取场景,可根据具体需求选择合适的方式。
以上就是关于“Linux Extract如何提取图片资源”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm