gpt4 book ai didi

opencv - 如何将包含图像信息的 .xml 文件转换为 jpeg 或 png

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:44 25 4
gpt4 key购买 nike

我的任务是为人类行为检测算法准备数据。总而言之,我已经获得了一些图像 .xml 文件(已使用 Kinect 传感器拍摄),我想将其转换为 jpeg 或 png 以便从算法中读取。我假设我必须使用 OpenCV。

我确定这是一个初学者问题,但我已经在互联网上搜索过,但一无所获。

<?xml version="1.0"?>
<opencv_storage>
<depthImg190 type_id="opencv-image">
<width>320</width>
<height>240</height>
<origin>top-left</origin>
<layout>interleaved</layout>
<dt>w</dt>
<data>
0 0 0 0 27120 27384 27120 27120 27384 27120 27120 27120 27120 27384
27384 27664 27664 27944 27944 27664 27664 27944 27944 27944 28224
27944 27944 28224 28224 28224 28224 28520 28816 29120 29120 29120
29120 29120 29120 29120 29432 29744 30072 30072 29744 29744 30072
30072 30072 30400 30400 30736 30736 31080 31080 31080 31440 31440
31440 31440 31800 31800 31800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 27120 27120 27120 27120 27384 27384 27384 27384 27384 27384
27664 27944 27944 27944 27944 27944 27944 27944 27944 27944 28224
27944 28224 28224 28224 28224 28224 28520 29120 29120 29120 29120
29120 29120 29120 29432 29432 29744 29744 30072 30072 30072 30072
30400 30400 30400 30400 30736 30736 31080 31080 31440 31440 31440
31440 31440 31800 31800 31800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 27120 27120 27120 27120 27664 27384 27384 27384 27120 27384
27664 27944 27944 27944 27944 27664 27944 27944 27944 27944 28224

最佳答案

这是一个非常丑陋的 hack,但它允许您将 XML 文件转换为 NetPBM您可以使用 OpenCV、ImageMagick 或 Photoshop 轻松读取该文件,或将其转换为 PNGJPEG:

#!/bin/bash

xml=$1

# Get width and height of image
w=$(xmlstarlet sel -t -m "//width" -v . -n "$xml")
h=$(xmlstarlet sel -t -m "//height" -v . -n "$xml")

# Generate PPM header - https://en.wikipedia.org/wiki/Netpbm_format
printf "P2\n$w $h\n65535\n" > image.ppm

# Append ASCII image data
xmlstarlet sel -t -m "//data" -v . -n "$xml" >> image.ppm

您可以将它作为 xml2ppm 保存在您的 HOME 目录中,并使其可执行(仅一次):

chmod +x $HOME/xml2ppm

你会运行它:

$HOME/xml2ppm someFile.xml

enter image description here


如果你假设所有图像都是 320x240 并使用 awk:

#!/bin/bash

# Generate PPM header - https://en.wikipedia.org/wiki/Netpbm_format
# and follow with ASCII data from XML file embedded in <data>...</data> tags

xml=$1

awk '
BEGIN {print "P2\n320 240\n65535\n"}
/<data>/ {flag=1; next}
/<\/data>/ {exit}
flag
' "$xml" > image.ppm

您还可以使用 ImageMagick 将生成的 PPM 文件转换为 PNG:

magick image.ppm result.png    # convert to PNG
magick image.ppm result.jpg # convert to JPEG

如果您的 ImageMagick 是 v6 或更早版本,请使用 convert 代替 magick

关键字:XML、xmlstarlet、Kinect、OpenCV、opencv-storage、depthImg190、opencv-image

关于opencv - 如何将包含图像信息的 .xml 文件转换为 jpeg 或 png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57609768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com