Create a sqlite database and log all frames drawn to it. For keeping track of pen usage and creating a dataset from which to predict drawing times for future frames
This commit is contained in:
parent
f541a2d2db
commit
0e601ebb9a
|
@ -4,3 +4,5 @@
|
|||
*.mkv
|
||||
test_svg
|
||||
test_png
|
||||
draw.sqlite
|
||||
.env
|
13
common.sh
13
common.sh
|
@ -22,6 +22,10 @@ hashStr () {
|
|||
echo -n "${1}" | sha256sum | awk '{print $1}'
|
||||
}
|
||||
|
||||
hashFile () {
|
||||
sha256sum "${1}" | awk '{print $1}'
|
||||
}
|
||||
|
||||
uuid () {
|
||||
uuidgen | tr "[:upper:]" "[:lower:]"
|
||||
}
|
||||
|
@ -38,15 +42,6 @@ askContinue () {
|
|||
fi
|
||||
}
|
||||
|
||||
log () {
|
||||
read loglines
|
||||
file=$(echo "${loglines}" | grep 'FILE:' | awk -F'FILE:' '{print $2}')
|
||||
drawn=$(echo "${loglines}" | grep 'Length of path drawn' | awk -F': ' '{print $2}' | awk '{print $1}')
|
||||
moved=$(echo "${loglines}" | grep 'Total distance moved' | awk -F': ' '{print $2}' | awk '{print $1}')
|
||||
#echo "${loglines}"
|
||||
echo "$file,$drawn,$moved"
|
||||
}
|
||||
|
||||
axdraw () {
|
||||
file=$(realpath "${1}")
|
||||
echo "FILE:${file}"
|
||||
|
|
5
draw.sh
5
draw.sh
|
@ -15,6 +15,8 @@ if [[ "${1}" == "" ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
dbSetup
|
||||
|
||||
FRAMES=$(realpath "${1}")/
|
||||
|
||||
END=-1
|
||||
|
@ -48,6 +50,7 @@ for svg in "${FRAMES}"*.svg ; do
|
|||
i=$((i+1))
|
||||
continue
|
||||
fi
|
||||
|
||||
filename=`basename "${svg}"`
|
||||
name=`echo "${filename}" | cut -d'.' -f1`
|
||||
num=`echo "${name}" | awk -F'_' '{print $(NF)}'`
|
||||
|
@ -57,7 +60,7 @@ for svg in "${FRAMES}"*.svg ; do
|
|||
number=`mktemp`.svg
|
||||
node ./numbers/ -n "${num}" -o "${number}"
|
||||
ax "${number}"
|
||||
ax "${svg}"
|
||||
axdraw "${svg}" | bash ./log.sh
|
||||
rm -f "${number}"
|
||||
bash position.sh reset
|
||||
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
#!/bin/bash
|
||||
|
||||
source ./common.sh
|
||||
|
||||
loglines="$(cat /dev/stdin)"
|
||||
id=$(uuid)
|
||||
file=$(echo "${loglines}" | grep 'FILE:' | awk -F'FILE:' '{print $2}')
|
||||
starttime=$(echo "${loglines}" | grep 'START:' | awk -F':' '{print $2}')
|
||||
endtime=$(echo "${loglines}" | grep 'END:' | awk -F':' '{print $2}')
|
||||
pen=$(echo "${loglines}" | grep 'PEN:' | awk -F':' '{print $2}')
|
||||
drawn=$(echo "${loglines}" | grep 'Length of path drawn' | awk -F':' '{print $2}' | awk '{print $1}')
|
||||
moved=$(echo "${loglines}" | grep 'Total distance moved' | awk -F':' '{print $2}' | awk '{print $1}')
|
||||
hash=$(hashFile "${file}")
|
||||
info=$(svginfo "${file}")
|
||||
paths=$(echo "$info" | grep -m 1 'number of paths' | awk -F': ' '{print $2}')
|
||||
total=$(echo "$info" | grep 'total path length' | awk -F': ' '{print $2}')
|
||||
ratio=$(echo "$info" | grep 'pen move ratio' | awk -F': ' '{print $2}')
|
||||
bboxclean=$(echo "$info" | grep 'bbox' | awk -F ')' '{print $1}' | awk -F'(' '{print $2}')
|
||||
xmin=$(echo "$bboxclean" | awk -F', ' '{print $1}')
|
||||
xmax=$(echo "$bboxclean" | awk -F', ' '{print $2}')
|
||||
ymin=$(echo "$bboxclean" | awk -F', ' '{print $3}')
|
||||
ymax=$(echo "$bboxclean" | awk -F', ' '{print $4}')
|
||||
|
||||
if [[ "${pen}" != "" ]]; then
|
||||
pen="'${pen}'"
|
||||
else
|
||||
pen=null
|
||||
fi
|
||||
|
||||
query="INSERT OR IGNORE INTO svg (id, file, drawn, moved, starttime, endtime, pen, hash, paths, total, ratio, xmin, xmax, ymin, ymax) VALUES (\
|
||||
'$id', \
|
||||
'$file',\
|
||||
$drawn,\
|
||||
$moved,\
|
||||
$starttime,\
|
||||
$endtime,\
|
||||
$pen,\
|
||||
'$hash',\
|
||||
$paths,\
|
||||
$total,\
|
||||
$ratio,\
|
||||
$xmin,\
|
||||
$xmax,\
|
||||
$ymin,\
|
||||
$ymax
|
||||
);"
|
||||
|
||||
db "${query}"
|
||||
|
||||
echo "${loglines}"
|
|
@ -5,5 +5,13 @@ CREATE TABLE IF NOT EXISTS svg (
|
|||
endtime INTEGER,
|
||||
drawn REAL,
|
||||
moved REAL,
|
||||
pen TEXT
|
||||
paths INTEGER,
|
||||
total REAL,
|
||||
ratio REAL,
|
||||
xmin REAL,
|
||||
xmax REAL,
|
||||
ymin REAL,
|
||||
ymax REAL,
|
||||
pen TEXT,
|
||||
hash TEXT
|
||||
);
|
Loading…
Reference in New Issue