4DGaussians/.ipynb_checkpoints/test-checkpoint.ipynb
2023-12-02 14:13:12 +08:00

256 lines
6.6 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import torch\n",
"import os\n",
"import imageio"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"# path = \"/data3/guanjunwu/project_scp/TiNeuVox/logs/interp_data/interp/chicken/render_test_fine_last\"\n",
"path = \"output/hypernerf4/interp/americano/test/ours_14000/renders\"\n",
"# \n",
"# path = \"output/dynamic3dgs/dynamic3dgs/basketball/test/ours_30000/renders\"\n",
"image_list = os.listdir(path)\n",
"len_image = len(image_list)\n",
"tile = image_list[0].split('.')[-1]"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"def sort_numeric_filenames(filenames):\n",
" \"\"\"\n",
" Sort a list of filenames based on the numeric part of the filename.\n",
" Assumes filenames have a format like '0000.png', '0001.png', etc.\n",
" \"\"\"\n",
" def extract_number(filename):\n",
" # 使用正则表达式提取文件名中的数字\n",
" match = re.search(r'\\d+', filename)\n",
" return int(match.group()) if match else 0\n",
"\n",
" # 使用提取的数字进行排序\n",
" return sorted(filenames, key=extract_number)\n",
"\n",
"# 示例文件名列表\n",
"filenames = image_list\n",
"\n",
"# 进行排序\n",
"sorted_filenames = sort_numeric_filenames(filenames)\n",
"sorted_filenames = [i for i in sorted_filenames if 'png' in i]"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['000.png',\n",
" '001.png',\n",
" '002.png',\n",
" '003.png',\n",
" '004.png',\n",
" '005.png',\n",
" '006.png',\n",
" '007.png',\n",
" '008.png',\n",
" '009.png',\n",
" '010.png',\n",
" '011.png',\n",
" '012.png',\n",
" '013.png',\n",
" '014.png',\n",
" '015.png',\n",
" '016.png',\n",
" '017.png',\n",
" '018.png',\n",
" '019.png',\n",
" '020.png',\n",
" '021.png',\n",
" '022.png',\n",
" '023.png',\n",
" '024.png',\n",
" '025.png',\n",
" '026.png',\n",
" '027.png',\n",
" '028.png',\n",
" '029.png',\n",
" '030.png',\n",
" '031.png',\n",
" '032.png',\n",
" '033.png',\n",
" '034.png',\n",
" '035.png',\n",
" '036.png',\n",
" '037.png',\n",
" '038.png',\n",
" '039.png',\n",
" '040.png',\n",
" '041.png',\n",
" '042.png',\n",
" '043.png',\n",
" '044.png',\n",
" '045.png',\n",
" '046.png',\n",
" '047.png',\n",
" '048.png',\n",
" '049.png',\n",
" '050.png',\n",
" '051.png',\n",
" '052.png',\n",
" '053.png',\n",
" '054.png',\n",
" '055.png',\n",
" '056.png',\n",
" '057.png',\n",
" '058.png',\n",
" '059.png',\n",
" '060.png',\n",
" '061.png',\n",
" '062.png',\n",
" '063.png',\n",
" '064.png',\n",
" '065.png',\n",
" '066.png',\n",
" '067.png',\n",
" '068.png',\n",
" '069.png',\n",
" '070.png',\n",
" '071.png',\n",
" '072.png',\n",
" '073.png',\n",
" '074.png',\n",
" '075.png',\n",
" '076.png',\n",
" '077.png',\n",
" '078.png',\n",
" '079.png',\n",
" '080.png',\n",
" '081.png',\n",
" '082.png',\n",
" '083.png',\n",
" '084.png',\n",
" '085.png',\n",
" '086.png',\n",
" '087.png',\n",
" '088.png',\n",
" '089.png',\n",
" '090.png',\n",
" '091.png',\n",
" '092.png',\n",
" '093.png',\n",
" '094.png',\n",
" '095.png',\n",
" '096.png',\n",
" '097.png',\n",
" '098.png',\n",
" '099.png',\n",
" '100.png',\n",
" '101.png',\n",
" '102.png',\n",
" '103.png',\n",
" '104.png',\n",
" '105.png',\n",
" '106.png',\n",
" '107.png',\n",
" '108.png',\n",
" '109.png',\n",
" '110.png',\n",
" '111.png',\n",
" '112.png']"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted_filenames"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/data/guanjunwu/disk2/miniconda3/envs/Gaussians4D/lib/python3.7/site-packages/ipykernel_launcher.py:6: DeprecationWarning: Starting with ImageIO v3 the behavior of this function will switch to that of iio.v3.imread. To keep the current behavior (and make this warning disappear) use `import imageio.v2 as imageio` or call `imageio.v2.imread` directly.\n",
" \n",
"IMAGEIO FFMPEG_WRITER WARNING: input image is not divisible by macro_block_size=16, resizing from (536, 960) to (544, 960) to ensure video compatibility with most codecs and players. To prevent resizing, make your input image divisible by the macro_block_size or set the macro_block_size to 1 (risking incompatibility).\n",
"[swscaler @ 0x67a2580] Warning: data is not aligned! This can lead to a speed loss\n"
]
}
],
"source": [
"writer = imageio.get_writer(os.path.join(path,\"video111.mp4\"),fps=10)\n",
"video_num = 1\n",
"video_list = [[] for i in range(video_num)]\n",
"for i, image in enumerate(sorted_filenames):\n",
" if i % video_num == 0:\n",
" image = imageio.imread(os.path.join(path,image))\n",
" writer.append_data(image)\n",
"writer.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!pip install imageio[ffmpeg]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.16"
}
},
"nbformat": 4,
"nbformat_minor": 2
}