diff --git a/assets/test/frames/0002.png b/assets/test/frames/0002.png new file mode 100644 index 0000000..b7c7880 Binary files /dev/null and b/assets/test/frames/0002.png differ diff --git a/assets/test/frames/0003.png b/assets/test/frames/0003.png new file mode 100644 index 0000000..96a6e20 Binary files /dev/null and b/assets/test/frames/0003.png differ diff --git a/assets/test/frames/0004.png b/assets/test/frames/0004.png new file mode 100644 index 0000000..4be25e0 Binary files /dev/null and b/assets/test/frames/0004.png differ diff --git a/assets/test/frames/0005.png b/assets/test/frames/0005.png new file mode 100644 index 0000000..0ca6ade Binary files /dev/null and b/assets/test/frames/0005.png differ diff --git a/assets/test/frames/0006.png b/assets/test/frames/0006.png new file mode 100644 index 0000000..69028c1 Binary files /dev/null and b/assets/test/frames/0006.png differ diff --git a/assets/test/frames/0007.png b/assets/test/frames/0007.png new file mode 100644 index 0000000..bd3694d Binary files /dev/null and b/assets/test/frames/0007.png differ diff --git a/assets/test/frames/0008.png b/assets/test/frames/0008.png new file mode 100644 index 0000000..00fcf0f Binary files /dev/null and b/assets/test/frames/0008.png differ diff --git a/assets/test/frames/0009.png b/assets/test/frames/0009.png new file mode 100644 index 0000000..8878744 Binary files /dev/null and b/assets/test/frames/0009.png differ diff --git a/assets/test/frames/0010.png b/assets/test/frames/0010.png new file mode 100644 index 0000000..3257e1b Binary files /dev/null and b/assets/test/frames/0010.png differ diff --git a/assets/test/frames/0011.png b/assets/test/frames/0011.png new file mode 100644 index 0000000..2581411 Binary files /dev/null and b/assets/test/frames/0011.png differ diff --git a/assets/test/frames/0012.png b/assets/test/frames/0012.png new file mode 100644 index 0000000..c0eaf46 Binary files /dev/null and b/assets/test/frames/0012.png differ diff --git a/assets/test/frames/0013.png b/assets/test/frames/0013.png new file mode 100644 index 0000000..989d785 Binary files /dev/null and b/assets/test/frames/0013.png differ diff --git a/assets/test/frames/0014.png b/assets/test/frames/0014.png new file mode 100644 index 0000000..0c50860 Binary files /dev/null and b/assets/test/frames/0014.png differ diff --git a/assets/test/frames/0015.png b/assets/test/frames/0015.png new file mode 100644 index 0000000..4efda25 Binary files /dev/null and b/assets/test/frames/0015.png differ diff --git a/assets/test/frames/0016.png b/assets/test/frames/0016.png new file mode 100644 index 0000000..c9ad119 Binary files /dev/null and b/assets/test/frames/0016.png differ diff --git a/assets/test/frames/0017.png b/assets/test/frames/0017.png new file mode 100644 index 0000000..3522af9 Binary files /dev/null and b/assets/test/frames/0017.png differ diff --git a/assets/test/frames/0018.png b/assets/test/frames/0018.png new file mode 100644 index 0000000..de22895 Binary files /dev/null and b/assets/test/frames/0018.png differ diff --git a/assets/test/frames/0019.png b/assets/test/frames/0019.png new file mode 100644 index 0000000..7cc72db Binary files /dev/null and b/assets/test/frames/0019.png differ diff --git a/assets/test/frames/0020.png b/assets/test/frames/0020.png new file mode 100644 index 0000000..72c489a Binary files /dev/null and b/assets/test/frames/0020.png differ diff --git a/assets/test/frames/0021.png b/assets/test/frames/0021.png new file mode 100644 index 0000000..435c787 Binary files /dev/null and b/assets/test/frames/0021.png differ diff --git a/assets/test/frames/0022.png b/assets/test/frames/0022.png new file mode 100644 index 0000000..cbc8950 Binary files /dev/null and b/assets/test/frames/0022.png differ diff --git a/assets/test/frames/0023.png b/assets/test/frames/0023.png new file mode 100644 index 0000000..fc7b8e5 Binary files /dev/null and b/assets/test/frames/0023.png differ diff --git a/assets/test/frames/0024.png b/assets/test/frames/0024.png new file mode 100644 index 0000000..8f35edb Binary files /dev/null and b/assets/test/frames/0024.png differ diff --git a/assets/test/frames/0025.png b/assets/test/frames/0025.png new file mode 100644 index 0000000..f970b0b Binary files /dev/null and b/assets/test/frames/0025.png differ diff --git a/assets/test/frames/0026.png b/assets/test/frames/0026.png new file mode 100644 index 0000000..5d8741a Binary files /dev/null and b/assets/test/frames/0026.png differ diff --git a/assets/test/frames/0027.png b/assets/test/frames/0027.png new file mode 100644 index 0000000..7efad60 Binary files /dev/null and b/assets/test/frames/0027.png differ diff --git a/assets/test/frames/0028.png b/assets/test/frames/0028.png new file mode 100644 index 0000000..bc5329d Binary files /dev/null and b/assets/test/frames/0028.png differ diff --git a/assets/test/frames/0029.png b/assets/test/frames/0029.png new file mode 100644 index 0000000..6b88675 Binary files /dev/null and b/assets/test/frames/0029.png differ diff --git a/assets/test/frames/0030.png b/assets/test/frames/0030.png new file mode 100644 index 0000000..060a63d Binary files /dev/null and b/assets/test/frames/0030.png differ diff --git a/assets/test/frames/0031.png b/assets/test/frames/0031.png new file mode 100644 index 0000000..170d2e4 Binary files /dev/null and b/assets/test/frames/0031.png differ diff --git a/assets/test/frames/0032.png b/assets/test/frames/0032.png new file mode 100644 index 0000000..bf3cedf Binary files /dev/null and b/assets/test/frames/0032.png differ diff --git a/assets/test/frames/0033.png b/assets/test/frames/0033.png new file mode 100644 index 0000000..b5cde32 Binary files /dev/null and b/assets/test/frames/0033.png differ diff --git a/assets/test/frames/0034.png b/assets/test/frames/0034.png new file mode 100644 index 0000000..1a6d262 Binary files /dev/null and b/assets/test/frames/0034.png differ diff --git a/assets/test/frames/0035.png b/assets/test/frames/0035.png new file mode 100644 index 0000000..91e05dd Binary files /dev/null and b/assets/test/frames/0035.png differ diff --git a/assets/test/frames/0036.png b/assets/test/frames/0036.png new file mode 100644 index 0000000..a71558e Binary files /dev/null and b/assets/test/frames/0036.png differ diff --git a/assets/test/frames/0037.png b/assets/test/frames/0037.png new file mode 100644 index 0000000..faa3808 Binary files /dev/null and b/assets/test/frames/0037.png differ diff --git a/assets/test/frames/0038.png b/assets/test/frames/0038.png new file mode 100644 index 0000000..20512c1 Binary files /dev/null and b/assets/test/frames/0038.png differ diff --git a/assets/test/frames/0039.png b/assets/test/frames/0039.png new file mode 100644 index 0000000..a97f63e Binary files /dev/null and b/assets/test/frames/0039.png differ diff --git a/assets/test/frames/0040.png b/assets/test/frames/0040.png new file mode 100644 index 0000000..429702a Binary files /dev/null and b/assets/test/frames/0040.png differ diff --git a/assets/test/frames/0041.png b/assets/test/frames/0041.png new file mode 100644 index 0000000..d134e92 Binary files /dev/null and b/assets/test/frames/0041.png differ diff --git a/assets/test/frames/0042.png b/assets/test/frames/0042.png new file mode 100644 index 0000000..12b6c4f Binary files /dev/null and b/assets/test/frames/0042.png differ diff --git a/assets/test/frames/0043.png b/assets/test/frames/0043.png new file mode 100644 index 0000000..a8cfdcc Binary files /dev/null and b/assets/test/frames/0043.png differ diff --git a/assets/test/frames/0044.png b/assets/test/frames/0044.png new file mode 100644 index 0000000..ab7502b Binary files /dev/null and b/assets/test/frames/0044.png differ diff --git a/assets/test/frames/0045.png b/assets/test/frames/0045.png new file mode 100644 index 0000000..e1af965 Binary files /dev/null and b/assets/test/frames/0045.png differ diff --git a/assets/test/frames/0046.png b/assets/test/frames/0046.png new file mode 100644 index 0000000..30818a1 Binary files /dev/null and b/assets/test/frames/0046.png differ diff --git a/assets/test/frames/0047.png b/assets/test/frames/0047.png new file mode 100644 index 0000000..b576a6c Binary files /dev/null and b/assets/test/frames/0047.png differ diff --git a/assets/test/frames/0048.png b/assets/test/frames/0048.png new file mode 100644 index 0000000..8613dd3 Binary files /dev/null and b/assets/test/frames/0048.png differ diff --git a/assets/test/frames/0049.png b/assets/test/frames/0049.png new file mode 100644 index 0000000..3d7dda4 Binary files /dev/null and b/assets/test/frames/0049.png differ diff --git a/assets/test/frames/0050.png b/assets/test/frames/0050.png new file mode 100644 index 0000000..5eb3643 Binary files /dev/null and b/assets/test/frames/0050.png differ diff --git a/assets/test/frames/0051.png b/assets/test/frames/0051.png new file mode 100644 index 0000000..1e382b1 Binary files /dev/null and b/assets/test/frames/0051.png differ diff --git a/assets/test/frames/0052.png b/assets/test/frames/0052.png new file mode 100644 index 0000000..6f828bf Binary files /dev/null and b/assets/test/frames/0052.png differ diff --git a/assets/test/frames/0053.png b/assets/test/frames/0053.png new file mode 100644 index 0000000..cb9136e Binary files /dev/null and b/assets/test/frames/0053.png differ diff --git a/assets/test/frames/0054.png b/assets/test/frames/0054.png new file mode 100644 index 0000000..d6998aa Binary files /dev/null and b/assets/test/frames/0054.png differ diff --git a/assets/test/frames/0055.png b/assets/test/frames/0055.png new file mode 100644 index 0000000..cc17c97 Binary files /dev/null and b/assets/test/frames/0055.png differ diff --git a/assets/test/frames/0056.png b/assets/test/frames/0056.png new file mode 100644 index 0000000..aaab9d7 Binary files /dev/null and b/assets/test/frames/0056.png differ diff --git a/assets/test/frames/0057.png b/assets/test/frames/0057.png new file mode 100644 index 0000000..dddf133 Binary files /dev/null and b/assets/test/frames/0057.png differ diff --git a/assets/test/frames/0058.png b/assets/test/frames/0058.png new file mode 100644 index 0000000..b678dc7 Binary files /dev/null and b/assets/test/frames/0058.png differ diff --git a/assets/test/frames/0059.png b/assets/test/frames/0059.png new file mode 100644 index 0000000..ef96481 Binary files /dev/null and b/assets/test/frames/0059.png differ diff --git a/assets/test/frames/0060.png b/assets/test/frames/0060.png new file mode 100644 index 0000000..be18035 Binary files /dev/null and b/assets/test/frames/0060.png differ diff --git a/assets/test/frames/0061.png b/assets/test/frames/0061.png new file mode 100644 index 0000000..8e89af5 Binary files /dev/null and b/assets/test/frames/0061.png differ diff --git a/assets/test/frames/0062.png b/assets/test/frames/0062.png new file mode 100644 index 0000000..2a43eee Binary files /dev/null and b/assets/test/frames/0062.png differ diff --git a/assets/test/frames/0063.png b/assets/test/frames/0063.png new file mode 100644 index 0000000..ee4c869 Binary files /dev/null and b/assets/test/frames/0063.png differ diff --git a/assets/test/frames/0064.png b/assets/test/frames/0064.png new file mode 100644 index 0000000..cd66e2c Binary files /dev/null and b/assets/test/frames/0064.png differ diff --git a/assets/test/frames/0065.png b/assets/test/frames/0065.png new file mode 100644 index 0000000..ad4e02c Binary files /dev/null and b/assets/test/frames/0065.png differ diff --git a/assets/test/frames/0066.png b/assets/test/frames/0066.png new file mode 100644 index 0000000..3a1505e Binary files /dev/null and b/assets/test/frames/0066.png differ diff --git a/assets/test/frames/0067.png b/assets/test/frames/0067.png new file mode 100644 index 0000000..e337591 Binary files /dev/null and b/assets/test/frames/0067.png differ diff --git a/assets/test/frames/0068.png b/assets/test/frames/0068.png new file mode 100644 index 0000000..409bd65 Binary files /dev/null and b/assets/test/frames/0068.png differ diff --git a/assets/test/frames/0069.png b/assets/test/frames/0069.png new file mode 100644 index 0000000..510bfc6 Binary files /dev/null and b/assets/test/frames/0069.png differ diff --git a/assets/test/frames/0070.png b/assets/test/frames/0070.png new file mode 100644 index 0000000..8767a96 Binary files /dev/null and b/assets/test/frames/0070.png differ diff --git a/assets/test/frames/0071.png b/assets/test/frames/0071.png new file mode 100644 index 0000000..04d03d3 Binary files /dev/null and b/assets/test/frames/0071.png differ diff --git a/assets/test/frames/0072.png b/assets/test/frames/0072.png new file mode 100644 index 0000000..3215cbd Binary files /dev/null and b/assets/test/frames/0072.png differ diff --git a/assets/test/frames/0073.png b/assets/test/frames/0073.png new file mode 100644 index 0000000..7d3f17f Binary files /dev/null and b/assets/test/frames/0073.png differ diff --git a/assets/test/frames/0074.png b/assets/test/frames/0074.png new file mode 100644 index 0000000..eae0a3d Binary files /dev/null and b/assets/test/frames/0074.png differ diff --git a/assets/test/frames/0075.png b/assets/test/frames/0075.png new file mode 100644 index 0000000..ca4add9 Binary files /dev/null and b/assets/test/frames/0075.png differ diff --git a/assets/test/frames/0076.png b/assets/test/frames/0076.png new file mode 100644 index 0000000..602c2d4 Binary files /dev/null and b/assets/test/frames/0076.png differ diff --git a/assets/test/frames/0077.png b/assets/test/frames/0077.png new file mode 100644 index 0000000..ffc56ea Binary files /dev/null and b/assets/test/frames/0077.png differ diff --git a/assets/test/frames/0078.png b/assets/test/frames/0078.png new file mode 100644 index 0000000..f44a459 Binary files /dev/null and b/assets/test/frames/0078.png differ diff --git a/assets/test/frames/0079.png b/assets/test/frames/0079.png new file mode 100644 index 0000000..58ce9ae Binary files /dev/null and b/assets/test/frames/0079.png differ diff --git a/assets/test/frames/0080.png b/assets/test/frames/0080.png new file mode 100644 index 0000000..3383288 Binary files /dev/null and b/assets/test/frames/0080.png differ diff --git a/assets/test/frames/0081.png b/assets/test/frames/0081.png new file mode 100644 index 0000000..5b99dbb Binary files /dev/null and b/assets/test/frames/0081.png differ diff --git a/assets/test/frames/0082.png b/assets/test/frames/0082.png new file mode 100644 index 0000000..ddc3e58 Binary files /dev/null and b/assets/test/frames/0082.png differ diff --git a/assets/test/frames/0083.png b/assets/test/frames/0083.png new file mode 100644 index 0000000..7a6d980 Binary files /dev/null and b/assets/test/frames/0083.png differ diff --git a/assets/test/frames/0084.png b/assets/test/frames/0084.png new file mode 100644 index 0000000..6c89acc Binary files /dev/null and b/assets/test/frames/0084.png differ diff --git a/assets/test/frames/0085.png b/assets/test/frames/0085.png new file mode 100644 index 0000000..bf4f65e Binary files /dev/null and b/assets/test/frames/0085.png differ diff --git a/assets/test/frames/0086.png b/assets/test/frames/0086.png new file mode 100644 index 0000000..e81b149 Binary files /dev/null and b/assets/test/frames/0086.png differ diff --git a/assets/test/frames/0087.png b/assets/test/frames/0087.png new file mode 100644 index 0000000..217fad4 Binary files /dev/null and b/assets/test/frames/0087.png differ diff --git a/assets/test/frames/0088.png b/assets/test/frames/0088.png new file mode 100644 index 0000000..aef4cb9 Binary files /dev/null and b/assets/test/frames/0088.png differ diff --git a/assets/test/frames/0089.png b/assets/test/frames/0089.png new file mode 100644 index 0000000..18db677 Binary files /dev/null and b/assets/test/frames/0089.png differ diff --git a/assets/test/frames/0090.png b/assets/test/frames/0090.png new file mode 100644 index 0000000..9c3a5b7 Binary files /dev/null and b/assets/test/frames/0090.png differ diff --git a/assets/test/frames/0091.png b/assets/test/frames/0091.png new file mode 100644 index 0000000..a4015db Binary files /dev/null and b/assets/test/frames/0091.png differ diff --git a/assets/test/frames/0092.png b/assets/test/frames/0092.png new file mode 100644 index 0000000..f679493 Binary files /dev/null and b/assets/test/frames/0092.png differ diff --git a/assets/test/frames/0093.png b/assets/test/frames/0093.png new file mode 100644 index 0000000..7da8461 Binary files /dev/null and b/assets/test/frames/0093.png differ diff --git a/assets/test/frames/0094.png b/assets/test/frames/0094.png new file mode 100644 index 0000000..9f1d2fd Binary files /dev/null and b/assets/test/frames/0094.png differ diff --git a/assets/test/frames/0095.png b/assets/test/frames/0095.png new file mode 100644 index 0000000..f69c27b Binary files /dev/null and b/assets/test/frames/0095.png differ diff --git a/assets/test/frames/0096.png b/assets/test/frames/0096.png new file mode 100644 index 0000000..657316a Binary files /dev/null and b/assets/test/frames/0096.png differ diff --git a/assets/test/frames/0097.png b/assets/test/frames/0097.png new file mode 100644 index 0000000..dd05c72 Binary files /dev/null and b/assets/test/frames/0097.png differ diff --git a/assets/test/frames/0098.png b/assets/test/frames/0098.png new file mode 100644 index 0000000..07a2d0e Binary files /dev/null and b/assets/test/frames/0098.png differ diff --git a/assets/test/frames/0099.png b/assets/test/frames/0099.png new file mode 100644 index 0000000..6a41a74 Binary files /dev/null and b/assets/test/frames/0099.png differ diff --git a/assets/test/frames/0100.png b/assets/test/frames/0100.png new file mode 100644 index 0000000..32387c6 Binary files /dev/null and b/assets/test/frames/0100.png differ diff --git a/assets/test/frames/0101.png b/assets/test/frames/0101.png new file mode 100644 index 0000000..7018b19 Binary files /dev/null and b/assets/test/frames/0101.png differ diff --git a/assets/test/frames/0102.png b/assets/test/frames/0102.png new file mode 100644 index 0000000..aff56e0 Binary files /dev/null and b/assets/test/frames/0102.png differ diff --git a/assets/test/frames/0103.png b/assets/test/frames/0103.png new file mode 100644 index 0000000..b6d142a Binary files /dev/null and b/assets/test/frames/0103.png differ diff --git a/assets/test/frames/0104.png b/assets/test/frames/0104.png new file mode 100644 index 0000000..bf3367d Binary files /dev/null and b/assets/test/frames/0104.png differ diff --git a/assets/test/frames/0105.png b/assets/test/frames/0105.png new file mode 100644 index 0000000..a2745d3 Binary files /dev/null and b/assets/test/frames/0105.png differ diff --git a/assets/test/frames/0106.png b/assets/test/frames/0106.png new file mode 100644 index 0000000..00781d5 Binary files /dev/null and b/assets/test/frames/0106.png differ diff --git a/assets/test/frames/0107.png b/assets/test/frames/0107.png new file mode 100644 index 0000000..546bc18 Binary files /dev/null and b/assets/test/frames/0107.png differ diff --git a/assets/test/frames/0108.png b/assets/test/frames/0108.png new file mode 100644 index 0000000..8bcdc28 Binary files /dev/null and b/assets/test/frames/0108.png differ diff --git a/assets/test/frames/0109.png b/assets/test/frames/0109.png new file mode 100644 index 0000000..ae2fb57 Binary files /dev/null and b/assets/test/frames/0109.png differ diff --git a/assets/test/frames/0110.png b/assets/test/frames/0110.png new file mode 100644 index 0000000..ddc0e23 Binary files /dev/null and b/assets/test/frames/0110.png differ diff --git a/assets/test/frames/0111.png b/assets/test/frames/0111.png new file mode 100644 index 0000000..2933c40 Binary files /dev/null and b/assets/test/frames/0111.png differ diff --git a/assets/test/frames/0112.png b/assets/test/frames/0112.png new file mode 100644 index 0000000..9ec2a45 Binary files /dev/null and b/assets/test/frames/0112.png differ diff --git a/assets/test/frames/0113.png b/assets/test/frames/0113.png new file mode 100644 index 0000000..4bf64b3 Binary files /dev/null and b/assets/test/frames/0113.png differ diff --git a/assets/test/frames/0114.png b/assets/test/frames/0114.png new file mode 100644 index 0000000..67eeb0b Binary files /dev/null and b/assets/test/frames/0114.png differ diff --git a/assets/test/frames/0115.png b/assets/test/frames/0115.png new file mode 100644 index 0000000..77f6418 Binary files /dev/null and b/assets/test/frames/0115.png differ diff --git a/assets/test/frames/0116.png b/assets/test/frames/0116.png new file mode 100644 index 0000000..3aa864c Binary files /dev/null and b/assets/test/frames/0116.png differ diff --git a/assets/test/frames/0117.png b/assets/test/frames/0117.png new file mode 100644 index 0000000..bb065cd Binary files /dev/null and b/assets/test/frames/0117.png differ diff --git a/assets/test/frames/0118.png b/assets/test/frames/0118.png new file mode 100644 index 0000000..422fba4 Binary files /dev/null and b/assets/test/frames/0118.png differ diff --git a/assets/test/frames/0119.png b/assets/test/frames/0119.png new file mode 100644 index 0000000..83b6e45 Binary files /dev/null and b/assets/test/frames/0119.png differ diff --git a/assets/test/frames/0120.png b/assets/test/frames/0120.png new file mode 100644 index 0000000..bd4841a Binary files /dev/null and b/assets/test/frames/0120.png differ diff --git a/assets/test/frames/0121.png b/assets/test/frames/0121.png new file mode 100644 index 0000000..7700b5a Binary files /dev/null and b/assets/test/frames/0121.png differ diff --git a/assets/test/frames/0122.png b/assets/test/frames/0122.png new file mode 100644 index 0000000..ffb1c28 Binary files /dev/null and b/assets/test/frames/0122.png differ diff --git a/assets/test/frames/0123.png b/assets/test/frames/0123.png new file mode 100644 index 0000000..0ed59f7 Binary files /dev/null and b/assets/test/frames/0123.png differ diff --git a/assets/test/frames/0124.png b/assets/test/frames/0124.png new file mode 100644 index 0000000..9fb8dea Binary files /dev/null and b/assets/test/frames/0124.png differ diff --git a/assets/test/frames/0125.png b/assets/test/frames/0125.png new file mode 100644 index 0000000..4f53087 Binary files /dev/null and b/assets/test/frames/0125.png differ diff --git a/assets/test/frames/0126.png b/assets/test/frames/0126.png new file mode 100644 index 0000000..918f8c6 Binary files /dev/null and b/assets/test/frames/0126.png differ diff --git a/assets/test/frames/0127.png b/assets/test/frames/0127.png new file mode 100644 index 0000000..13905d3 Binary files /dev/null and b/assets/test/frames/0127.png differ diff --git a/assets/test/frames/0128.png b/assets/test/frames/0128.png new file mode 100644 index 0000000..e347f2d Binary files /dev/null and b/assets/test/frames/0128.png differ diff --git a/assets/test/frames/0129.png b/assets/test/frames/0129.png new file mode 100644 index 0000000..a50f01f Binary files /dev/null and b/assets/test/frames/0129.png differ diff --git a/assets/test/frames/0130.png b/assets/test/frames/0130.png new file mode 100644 index 0000000..2e8926d Binary files /dev/null and b/assets/test/frames/0130.png differ diff --git a/assets/test/frames/0131.png b/assets/test/frames/0131.png new file mode 100644 index 0000000..950f9f2 Binary files /dev/null and b/assets/test/frames/0131.png differ diff --git a/assets/test/frames/0132.png b/assets/test/frames/0132.png new file mode 100644 index 0000000..5636e7b Binary files /dev/null and b/assets/test/frames/0132.png differ diff --git a/assets/test/frames/0133.png b/assets/test/frames/0133.png new file mode 100644 index 0000000..c42a83d Binary files /dev/null and b/assets/test/frames/0133.png differ diff --git a/assets/test/frames/0134.png b/assets/test/frames/0134.png new file mode 100644 index 0000000..72a21ec Binary files /dev/null and b/assets/test/frames/0134.png differ diff --git a/assets/test/frames/0135.png b/assets/test/frames/0135.png new file mode 100644 index 0000000..8503614 Binary files /dev/null and b/assets/test/frames/0135.png differ diff --git a/assets/test/frames/0136.png b/assets/test/frames/0136.png new file mode 100644 index 0000000..9c5a7ed Binary files /dev/null and b/assets/test/frames/0136.png differ diff --git a/assets/test/frames/0137.png b/assets/test/frames/0137.png new file mode 100644 index 0000000..b680e2c Binary files /dev/null and b/assets/test/frames/0137.png differ diff --git a/assets/test/frames/0138.png b/assets/test/frames/0138.png new file mode 100644 index 0000000..9da2e32 Binary files /dev/null and b/assets/test/frames/0138.png differ diff --git a/assets/test/frames/0139.png b/assets/test/frames/0139.png new file mode 100644 index 0000000..25ef407 Binary files /dev/null and b/assets/test/frames/0139.png differ diff --git a/assets/test/frames/0140.png b/assets/test/frames/0140.png new file mode 100644 index 0000000..215accb Binary files /dev/null and b/assets/test/frames/0140.png differ diff --git a/assets/test/frames/0141.png b/assets/test/frames/0141.png new file mode 100644 index 0000000..5b5a335 Binary files /dev/null and b/assets/test/frames/0141.png differ diff --git a/assets/test/frames/0142.png b/assets/test/frames/0142.png new file mode 100644 index 0000000..92693c2 Binary files /dev/null and b/assets/test/frames/0142.png differ diff --git a/assets/test/frames/0143.png b/assets/test/frames/0143.png new file mode 100644 index 0000000..6e829f9 Binary files /dev/null and b/assets/test/frames/0143.png differ diff --git a/assets/test/frames/0144.png b/assets/test/frames/0144.png new file mode 100644 index 0000000..b82d962 Binary files /dev/null and b/assets/test/frames/0144.png differ diff --git a/assets/test/frames/0145.png b/assets/test/frames/0145.png new file mode 100644 index 0000000..b77cbf5 Binary files /dev/null and b/assets/test/frames/0145.png differ diff --git a/assets/test/frames/0146.png b/assets/test/frames/0146.png new file mode 100644 index 0000000..c0cb100 Binary files /dev/null and b/assets/test/frames/0146.png differ diff --git a/assets/test/frames/0147.png b/assets/test/frames/0147.png new file mode 100644 index 0000000..b0aa09f Binary files /dev/null and b/assets/test/frames/0147.png differ diff --git a/assets/test/frames/0148.png b/assets/test/frames/0148.png new file mode 100644 index 0000000..4836b06 Binary files /dev/null and b/assets/test/frames/0148.png differ diff --git a/assets/test/frames/0149.png b/assets/test/frames/0149.png new file mode 100644 index 0000000..d773017 Binary files /dev/null and b/assets/test/frames/0149.png differ diff --git a/assets/test/frames/0150.png b/assets/test/frames/0150.png new file mode 100644 index 0000000..a60ec9b Binary files /dev/null and b/assets/test/frames/0150.png differ diff --git a/assets/test/frames/0151.png b/assets/test/frames/0151.png new file mode 100644 index 0000000..9f24405 Binary files /dev/null and b/assets/test/frames/0151.png differ diff --git a/assets/test/frames/0152.png b/assets/test/frames/0152.png new file mode 100644 index 0000000..4777ea6 Binary files /dev/null and b/assets/test/frames/0152.png differ diff --git a/assets/test/frames/0153.png b/assets/test/frames/0153.png new file mode 100644 index 0000000..201db4e Binary files /dev/null and b/assets/test/frames/0153.png differ diff --git a/assets/test/frames/0154.png b/assets/test/frames/0154.png new file mode 100644 index 0000000..c5ebdd4 Binary files /dev/null and b/assets/test/frames/0154.png differ diff --git a/assets/test/frames/0155.png b/assets/test/frames/0155.png new file mode 100644 index 0000000..0b529d4 Binary files /dev/null and b/assets/test/frames/0155.png differ diff --git a/assets/test/frames/0156.png b/assets/test/frames/0156.png new file mode 100644 index 0000000..64a9a53 Binary files /dev/null and b/assets/test/frames/0156.png differ diff --git a/assets/test/frames/0157.png b/assets/test/frames/0157.png new file mode 100644 index 0000000..0e6b156 Binary files /dev/null and b/assets/test/frames/0157.png differ diff --git a/assets/test/frames/0158.png b/assets/test/frames/0158.png new file mode 100644 index 0000000..40a19bf Binary files /dev/null and b/assets/test/frames/0158.png differ diff --git a/assets/test/frames/0159.png b/assets/test/frames/0159.png new file mode 100644 index 0000000..f3c71c7 Binary files /dev/null and b/assets/test/frames/0159.png differ diff --git a/assets/test/frames/0160.png b/assets/test/frames/0160.png new file mode 100644 index 0000000..c69d121 Binary files /dev/null and b/assets/test/frames/0160.png differ diff --git a/assets/test/frames/0161.png b/assets/test/frames/0161.png new file mode 100644 index 0000000..664df4b Binary files /dev/null and b/assets/test/frames/0161.png differ diff --git a/assets/test/frames/0162.png b/assets/test/frames/0162.png new file mode 100644 index 0000000..dc8b84c Binary files /dev/null and b/assets/test/frames/0162.png differ diff --git a/assets/test/frames/0163.png b/assets/test/frames/0163.png new file mode 100644 index 0000000..62b0cff Binary files /dev/null and b/assets/test/frames/0163.png differ diff --git a/assets/test/frames/0164.png b/assets/test/frames/0164.png new file mode 100644 index 0000000..1d8b2e5 Binary files /dev/null and b/assets/test/frames/0164.png differ diff --git a/assets/test/frames/0165.png b/assets/test/frames/0165.png new file mode 100644 index 0000000..3472937 Binary files /dev/null and b/assets/test/frames/0165.png differ diff --git a/assets/test/frames/0166.png b/assets/test/frames/0166.png new file mode 100644 index 0000000..c7fc43e Binary files /dev/null and b/assets/test/frames/0166.png differ diff --git a/assets/test/frames/0167.png b/assets/test/frames/0167.png new file mode 100644 index 0000000..f502af6 Binary files /dev/null and b/assets/test/frames/0167.png differ diff --git a/assets/test/frames/0168.png b/assets/test/frames/0168.png new file mode 100644 index 0000000..3869acf Binary files /dev/null and b/assets/test/frames/0168.png differ diff --git a/assets/test/frames/0169.png b/assets/test/frames/0169.png new file mode 100644 index 0000000..0aea558 Binary files /dev/null and b/assets/test/frames/0169.png differ diff --git a/assets/test/frames/0170.png b/assets/test/frames/0170.png new file mode 100644 index 0000000..74e378b Binary files /dev/null and b/assets/test/frames/0170.png differ diff --git a/assets/test/frames/0171.png b/assets/test/frames/0171.png new file mode 100644 index 0000000..e7206c5 Binary files /dev/null and b/assets/test/frames/0171.png differ diff --git a/assets/test/frames/0172.png b/assets/test/frames/0172.png new file mode 100644 index 0000000..b71fab3 Binary files /dev/null and b/assets/test/frames/0172.png differ diff --git a/assets/test/frames/0173.png b/assets/test/frames/0173.png new file mode 100644 index 0000000..2a4b399 Binary files /dev/null and b/assets/test/frames/0173.png differ diff --git a/assets/test/frames/0174.png b/assets/test/frames/0174.png new file mode 100644 index 0000000..4d8f632 Binary files /dev/null and b/assets/test/frames/0174.png differ diff --git a/assets/test/frames/0175.png b/assets/test/frames/0175.png new file mode 100644 index 0000000..d8b554b Binary files /dev/null and b/assets/test/frames/0175.png differ diff --git a/assets/test/frames/0176.png b/assets/test/frames/0176.png new file mode 100644 index 0000000..a78fd10 Binary files /dev/null and b/assets/test/frames/0176.png differ diff --git a/assets/test/frames/0177.png b/assets/test/frames/0177.png new file mode 100644 index 0000000..a4c6986 Binary files /dev/null and b/assets/test/frames/0177.png differ diff --git a/assets/test/frames/0178.png b/assets/test/frames/0178.png new file mode 100644 index 0000000..de5419a Binary files /dev/null and b/assets/test/frames/0178.png differ diff --git a/assets/test/frames/0179.png b/assets/test/frames/0179.png new file mode 100644 index 0000000..ab190be Binary files /dev/null and b/assets/test/frames/0179.png differ diff --git a/assets/test/frames/0180.png b/assets/test/frames/0180.png new file mode 100644 index 0000000..3eefb61 Binary files /dev/null and b/assets/test/frames/0180.png differ diff --git a/assets/test/frames/0181.png b/assets/test/frames/0181.png new file mode 100644 index 0000000..de0fcca Binary files /dev/null and b/assets/test/frames/0181.png differ diff --git a/assets/test/frames/0182.png b/assets/test/frames/0182.png new file mode 100644 index 0000000..36b8131 Binary files /dev/null and b/assets/test/frames/0182.png differ diff --git a/assets/test/frames/0183.png b/assets/test/frames/0183.png new file mode 100644 index 0000000..8554666 Binary files /dev/null and b/assets/test/frames/0183.png differ diff --git a/assets/test/frames/0184.png b/assets/test/frames/0184.png new file mode 100644 index 0000000..7c8c40c Binary files /dev/null and b/assets/test/frames/0184.png differ diff --git a/assets/test/frames/0185.png b/assets/test/frames/0185.png new file mode 100644 index 0000000..4896ddd Binary files /dev/null and b/assets/test/frames/0185.png differ diff --git a/assets/test/frames/0186.png b/assets/test/frames/0186.png new file mode 100644 index 0000000..803ad6a Binary files /dev/null and b/assets/test/frames/0186.png differ diff --git a/assets/test/frames/0187.png b/assets/test/frames/0187.png new file mode 100644 index 0000000..143f9e6 Binary files /dev/null and b/assets/test/frames/0187.png differ diff --git a/assets/test/frames/0188.png b/assets/test/frames/0188.png new file mode 100644 index 0000000..0990758 Binary files /dev/null and b/assets/test/frames/0188.png differ diff --git a/assets/test/frames/0189.png b/assets/test/frames/0189.png new file mode 100644 index 0000000..503c09e Binary files /dev/null and b/assets/test/frames/0189.png differ diff --git a/assets/test/frames/0190.png b/assets/test/frames/0190.png new file mode 100644 index 0000000..024ee40 Binary files /dev/null and b/assets/test/frames/0190.png differ diff --git a/assets/test/frames/0191.png b/assets/test/frames/0191.png new file mode 100644 index 0000000..84dda84 Binary files /dev/null and b/assets/test/frames/0191.png differ diff --git a/assets/test/frames/0192.png b/assets/test/frames/0192.png new file mode 100644 index 0000000..ff067ed Binary files /dev/null and b/assets/test/frames/0192.png differ diff --git a/assets/test/frames/0193.png b/assets/test/frames/0193.png new file mode 100644 index 0000000..f1e1fb7 Binary files /dev/null and b/assets/test/frames/0193.png differ diff --git a/assets/test/frames/0194.png b/assets/test/frames/0194.png new file mode 100644 index 0000000..7703d18 Binary files /dev/null and b/assets/test/frames/0194.png differ diff --git a/assets/test/frames/0195.png b/assets/test/frames/0195.png new file mode 100644 index 0000000..1fd6092 Binary files /dev/null and b/assets/test/frames/0195.png differ diff --git a/assets/test/frames/0196.png b/assets/test/frames/0196.png new file mode 100644 index 0000000..29f513e Binary files /dev/null and b/assets/test/frames/0196.png differ diff --git a/assets/test/frames/0197.png b/assets/test/frames/0197.png new file mode 100644 index 0000000..f0f51f3 Binary files /dev/null and b/assets/test/frames/0197.png differ diff --git a/assets/test/frames/0198.png b/assets/test/frames/0198.png new file mode 100644 index 0000000..223773b Binary files /dev/null and b/assets/test/frames/0198.png differ diff --git a/assets/test/frames/0199.png b/assets/test/frames/0199.png new file mode 100644 index 0000000..536b753 Binary files /dev/null and b/assets/test/frames/0199.png differ diff --git a/assets/test/frames/0200.png b/assets/test/frames/0200.png new file mode 100644 index 0000000..cf9de9c Binary files /dev/null and b/assets/test/frames/0200.png differ diff --git a/src/frame.cxx b/src/frame.cxx index 03525c9..40a7273 100644 --- a/src/frame.cxx +++ b/src/frame.cxx @@ -1,5 +1,7 @@ #include "frame.h" #include +#include +#include FILE *make_buffer(const uint8_t *data, const size_t data_len) { @@ -105,6 +107,13 @@ DartOpenMvg::Frames::Frames(openMVG::sfm::Bundle_Adjustment_Ceres::BA_Ceres_opti mAdjustment = openMVG::sfm::Bundle_Adjustment_Ceres(options); } +void DartOpenMvg::Frames::add_frame(FILE *handle, int w, int h, int depth) { + CFrame *f = new_frame_from_handle(handle, w, h, depth); + mFrames.push_back( + Frame(f) + ); +} + void DartOpenMvg::Frames::computeMatches() { #ifdef OPENMVG_USE_OPENMP @@ -123,6 +132,15 @@ void DartOpenMvg::Frames::computeMatches() const Frame &frame2 = mFrames[i+1]; auto *regions1 = frame1.mRegions.get(); auto *regions2 = frame2.mRegions.get(); + if (!regions1) { + std::string msg = std::string("Did you remember to calculate regions for frame ") + std::to_string(i) + "?"; + throw std::out_of_range(msg); + } + + regions1->Load(); + std::cerr << "Loading " << std::to_string(regions1->RegionCount()) << " regions" << endl; + + auto is_binary = regions1->IsBinary(); // Initialize the matching interface const std::unique_ptr matcher = diff --git a/src/frame.h b/src/frame.h index 1648a64..1eb3cb5 100644 --- a/src/frame.h +++ b/src/frame.h @@ -72,11 +72,12 @@ namespace DartOpenMvg const CFrame *cFrame; // TODO make this private std::unique_ptr mRegions; - Frame(const _Frame *f) : mW(f->w), mH(f->h), mDepth(f->depth) + Frame(const CFrame *f) : mW(f->w), mH(f->h), mDepth(f->depth) { cFrame = f; uint8_t *buffer_data = NULL; size_t len = 0; + rewind(f->stream); read_buffer(f->stream, &buffer_data, &len); mStream = std::stringstream(std::string((char *)buffer_data)); } @@ -92,17 +93,17 @@ namespace DartOpenMvg { protected: + + public: + // TODO: make private with accessors openMVG::matching::PairWiseMatches mFeatureMap; openMVG::tracks::STLMAPTracks mTracks; openMVG::sfm::SfM_Data mSfmData; openMVG::sfm::Bundle_Adjustment_Ceres mAdjustment; - - public: - - // TODO: make private with accessors std::vector mFrames; Frames(openMVG::sfm::Bundle_Adjustment_Ceres::BA_Ceres_options &); + void add_frame(FILE *, int, int, int); void computeMatches(); void buildTracks(); void adjust(); diff --git a/src/tests/test_frame.cxx b/src/tests/test_frame.cxx index 3874a92..9ee9e1f 100644 --- a/src/tests/test_frame.cxx +++ b/src/tests/test_frame.cxx @@ -1,5 +1,8 @@ +#include #include #include +#include +#include #include "../image.h" #include "../streamingview.hpp" #include "../util.h" @@ -9,12 +12,11 @@ #endif // __cplusplus #define STRLEN 2048 +#define FRAME_COUNT 200 typedef Frame CFrame; -FILE *imageHandle = NULL; -char frame1Path[STRLEN]; -char frame2Path[STRLEN]; +char *framePaths[FRAME_COUNT]; #define HERE __FILE__ @@ -22,60 +24,78 @@ int setUp(void) { char framesDir[STRLEN]; size_t length; + char framePathTpl[STRLEN]; cwk_path_get_dirname(HERE, &length); // archimedes_mobile_lib/src/tests cwk_path_join(HERE, "../../../assets/test/frames", framesDir, STRLEN); - cwk_path_join(framesDir, "0001.png", frame1Path, STRLEN); - cwk_path_join(framesDir, "0002.png", frame2Path, STRLEN); - printf("Opening file %s\n", frame1Path); - return 0; -} - -CFrame *get_first_frame() { - imageHandle = fopen(frame1Path, "rw+"); - CFrame *f = new_frame_from_handle( - imageHandle, - 768, - 768, - 64); - return f; -} - -CFrame *get_second_frame() { - imageHandle = fopen(frame2Path, "rw+"); - CFrame *f = new_frame_from_handle( - imageHandle, - 768, - 768, - 64); - return f; -} - - -int tearDown(void) -{ - if (imageHandle) + cwk_path_join(framesDir, "%04d.png", framePathTpl, STRLEN); + // Set the length to be the length of the "template" plus enough room + // for the sequence number. + size_t pathLen = strlen(framePathTpl) + 5; + for (size_t i = 0; i < FRAME_COUNT; ++i) { - fclose(imageHandle); + framePaths[i] = (char *)calloc(pathLen, sizeof(char *)); + snprintf(framePaths[i], pathLen, framePathTpl, i+1, 4); + printf("Load frame %s\n", framePaths[i]); } return 0; } -void test_calculate_fetures(void) { - Frame *f = get_first_frame(); +CFrame *get_nth_frame(size_t frame_num) +{ + struct stat statbuf; + if (stat(framePaths[frame_num], &statbuf) < 0) + { + // std::cerr << "ERROR reading \"" << framePaths << "\"" << std::endl; + std::cerr << std::string("Reading \"") << std::string(framePaths[frame_num]) << std::string("\"") << std::endl; + throw new std::ios_base::failure(std::string(strerror(errno))); + } + FILE *handle = fopen(framePaths[frame_num], "r"); + + CFrame *f = new_frame_from_handle( + handle, + 768, + 768, + 64); + return f; +} + +int tearDown(void) +{ + for (int i = 0; i < FRAME_COUNT; ++i) + { + free(framePaths[i]); + } + return 0; +} + +void test_calculate_fetures(void) +{ + Frame *f = get_nth_frame(0); DartOpenMvg::Frame frame(f); frame.calculateFeatures(); CU_ASSERT_TRUE(frame.mRegions.get()->RegionCount() > 0); } -void test_compute_matches(void) { - Frame *f1 = get_first_frame(); - Frame *f2 = get_second_frame(); - const DartOpenMvg::Frame frame1(f1), frame2(f2); +void test_compute_matches(void) +{ + Frame *f1 = get_nth_frame(0); + Frame *f2 = get_nth_frame(1); + DartOpenMvg::Frame frame1(f1), frame2(f2); openMVG::sfm::Bundle_Adjustment_Ceres::BA_Ceres_options opts; DartOpenMvg::Frames frames(opts); + + frame1.calculateFeatures(); + frame2.calculateFeatures(); + frames.mFrames.push_back(frame1); frames.mFrames.push_back(frame2); + + CU_ASSERT_EQUAL(frames.mFeatureMap.size(), 0) + + frames.computeMatches(); + + CU_ASSERT_TRUE(frames.mFeatureMap.size() > 0); } int main() @@ -95,7 +115,8 @@ int main() } /* add the tests to the suite */ - if ((NULL == CU_add_test(pSuite, "frame features can be calculated", test_calculate_fetures))) + if ((NULL == CU_add_test(pSuite, "frame features can be calculated", test_calculate_fetures)) || + (NULL == CU_add_test(pSuite, "matches can be computed", test_compute_matches))) { CU_cleanup_registry(); return CU_get_error();