Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files
lidar_postprocessing/create_range_imgs.ipynb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
"cells": [
|
| 3 |
{
|
| 4 |
"cell_type": "code",
|
| 5 |
-
"execution_count":
|
| 6 |
"id": "411e4917",
|
| 7 |
"metadata": {},
|
| 8 |
"outputs": [
|
|
@@ -22,7 +22,6 @@
|
|
| 22 |
"import sys\n",
|
| 23 |
"sys.path.append(os.path.abspath(\"..\")) # one level up\n",
|
| 24 |
"import numpy as np\n",
|
| 25 |
-
"# print(os.getcwd())\n",
|
| 26 |
"import cv2\n",
|
| 27 |
"import open3d as o3d\n",
|
| 28 |
"import matplotlib.pyplot as plt\n",
|
|
@@ -47,9 +46,6 @@
|
|
| 47 |
"sequence = '20250811_113017'\n",
|
| 48 |
"condition = 'flooded'\n",
|
| 49 |
"camera_pos = 'front'\n",
|
| 50 |
-
"# root_directory = f\"../../Datasets/FRED/{condition}/KITTI-style\"\n",
|
| 51 |
-
"# root_directory = f\"C:/Users/conno/Documents/data/FRED/{condition}/KITTI-style\"\n",
|
| 52 |
-
"# 01000000\n",
|
| 53 |
"root_directory = f\"/data/FRED/{condition}/KITTI-style\"\n",
|
| 54 |
"\n",
|
| 55 |
"if not os.path.exists(root_directory):\n",
|
|
@@ -72,8 +68,8 @@
|
|
| 72 |
"\n",
|
| 73 |
"timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(image_dir)) if os.path.isfile(image_dir+filename)]\n",
|
| 74 |
"\n",
|
| 75 |
-
"
|
| 76 |
-
"image_timestamp = timestamps[
|
| 77 |
"\n",
|
| 78 |
"image_filename = f\"{image_dir}/{image_timestamp}.png\"\n",
|
| 79 |
"\n",
|
|
|
|
| 2 |
"cells": [
|
| 3 |
{
|
| 4 |
"cell_type": "code",
|
| 5 |
+
"execution_count": null,
|
| 6 |
"id": "411e4917",
|
| 7 |
"metadata": {},
|
| 8 |
"outputs": [
|
|
|
|
| 22 |
"import sys\n",
|
| 23 |
"sys.path.append(os.path.abspath(\"..\")) # one level up\n",
|
| 24 |
"import numpy as np\n",
|
|
|
|
| 25 |
"import cv2\n",
|
| 26 |
"import open3d as o3d\n",
|
| 27 |
"import matplotlib.pyplot as plt\n",
|
|
|
|
| 46 |
"sequence = '20250811_113017'\n",
|
| 47 |
"condition = 'flooded'\n",
|
| 48 |
"camera_pos = 'front'\n",
|
|
|
|
|
|
|
|
|
|
| 49 |
"root_directory = f\"/data/FRED/{condition}/KITTI-style\"\n",
|
| 50 |
"\n",
|
| 51 |
"if not os.path.exists(root_directory):\n",
|
|
|
|
| 68 |
"\n",
|
| 69 |
"timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(image_dir)) if os.path.isfile(image_dir+filename)]\n",
|
| 70 |
"\n",
|
| 71 |
+
"timestamp_idx = 183\n",
|
| 72 |
+
"image_timestamp = timestamps[timestamp_idx]\n",
|
| 73 |
"\n",
|
| 74 |
"image_filename = f\"{image_dir}/{image_timestamp}.png\"\n",
|
| 75 |
"\n",
|
localisation/groundtruth_utm-single.ipynb
CHANGED
|
@@ -29,19 +29,12 @@
|
|
| 29 |
"outputs": [],
|
| 30 |
"source": [
|
| 31 |
"# User parameters\n",
|
| 32 |
-
"
|
| 33 |
-
"# location = 'Cambogan'\n",
|
| 34 |
-
"location = 'DairyCreek'\n",
|
| 35 |
"\n",
|
| 36 |
"################ Query filenames and directories #################################\n",
|
| 37 |
-
"
|
| 38 |
-
"# qry_sequence = '20250811_113017'\n",
|
| 39 |
-
"# qry_sequence = '20250811_113017'\n",
|
| 40 |
-
"qry_sequence = '20250811_103318'\n",
|
| 41 |
"qry_condition = 'flooded'\n",
|
| 42 |
"qry_camera_pos = 'front'\n",
|
| 43 |
-
"# qry_root_directory = f\"../../Datasets/FRED/{qry_condition}/KITTI-style\"\n",
|
| 44 |
-
"# qry_root_directory = f\"U:/Research/Projects/KVFPRA9190/FRED/{qry_condition}/KITTI-style\"\n",
|
| 45 |
"qry_root_directory = f\"/data/FRED/{qry_condition}/KITTI-style\"\n",
|
| 46 |
"\n",
|
| 47 |
"if not os.path.exists(qry_root_directory):\n",
|
|
@@ -58,14 +51,9 @@
|
|
| 58 |
"qry_timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(qry_image_dir)) if os.path.isfile(qry_image_dir+filename)]\n",
|
| 59 |
"\n",
|
| 60 |
"################ Reference filenames and directories #################################\n",
|
| 61 |
-
"
|
| 62 |
-
"# ref_sequence = '20250812_120100'\n",
|
| 63 |
-
"# ref_sequence = '20250812_122339'\n",
|
| 64 |
-
"ref_sequence = '20250812_122954'\n",
|
| 65 |
"ref_condition = 'dry'\n",
|
| 66 |
"ref_camera_pos = 'front'\n",
|
| 67 |
-
"# ref_root_directory = f\"../../Datasets/FRED/{ref_condition}/KITTI-style\"\n",
|
| 68 |
-
"# ref_root_directory = f\"U:/Research/Projects/KVFPRA9190/FRED/{ref_condition}/KITTI-style\"\n",
|
| 69 |
"ref_root_directory = f\"/data/FRED/{ref_condition}/KITTI-style\"\n",
|
| 70 |
"\n",
|
| 71 |
"if not os.path.exists(ref_root_directory):\n",
|
|
@@ -91,7 +79,7 @@
|
|
| 91 |
},
|
| 92 |
{
|
| 93 |
"cell_type": "code",
|
| 94 |
-
"execution_count":
|
| 95 |
"metadata": {},
|
| 96 |
"outputs": [
|
| 97 |
{
|
|
@@ -110,8 +98,7 @@
|
|
| 110 |
"ax[0].clear()\n",
|
| 111 |
"ax[1].clear()\n",
|
| 112 |
"\n",
|
| 113 |
-
"
|
| 114 |
-
"qry_image_timestamp = '644468810'\n",
|
| 115 |
"qry_image_filename = f\"{qry_image_dir}/{qry_image_timestamp}.png\"\n",
|
| 116 |
"qry_utm_timestamp = utils.get_corr_files(qry_image_timestamp, [qry_utm_dir,])\n",
|
| 117 |
"qry_utm = np.loadtxt(qry_utm_timestamp)\n",
|
|
|
|
| 29 |
"outputs": [],
|
| 30 |
"source": [
|
| 31 |
"# User parameters\n",
|
| 32 |
+
"location = 'Cambogan'\n",
|
|
|
|
|
|
|
| 33 |
"\n",
|
| 34 |
"################ Query filenames and directories #################################\n",
|
| 35 |
+
"qry_sequence = '20250811_113017'\n",
|
|
|
|
|
|
|
|
|
|
| 36 |
"qry_condition = 'flooded'\n",
|
| 37 |
"qry_camera_pos = 'front'\n",
|
|
|
|
|
|
|
| 38 |
"qry_root_directory = f\"/data/FRED/{qry_condition}/KITTI-style\"\n",
|
| 39 |
"\n",
|
| 40 |
"if not os.path.exists(qry_root_directory):\n",
|
|
|
|
| 51 |
"qry_timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(qry_image_dir)) if os.path.isfile(qry_image_dir+filename)]\n",
|
| 52 |
"\n",
|
| 53 |
"################ Reference filenames and directories #################################\n",
|
| 54 |
+
"ref_sequence = '20250812_122339'\n",
|
|
|
|
|
|
|
|
|
|
| 55 |
"ref_condition = 'dry'\n",
|
| 56 |
"ref_camera_pos = 'front'\n",
|
|
|
|
|
|
|
| 57 |
"ref_root_directory = f\"/data/FRED/{ref_condition}/KITTI-style\"\n",
|
| 58 |
"\n",
|
| 59 |
"if not os.path.exists(ref_root_directory):\n",
|
|
|
|
| 79 |
},
|
| 80 |
{
|
| 81 |
"cell_type": "code",
|
| 82 |
+
"execution_count": null,
|
| 83 |
"metadata": {},
|
| 84 |
"outputs": [
|
| 85 |
{
|
|
|
|
| 98 |
"ax[0].clear()\n",
|
| 99 |
"ax[1].clear()\n",
|
| 100 |
"\n",
|
| 101 |
+
"qry_image_timestamp = qry_timestamps[qry_idx]\n",
|
|
|
|
| 102 |
"qry_image_filename = f\"{qry_image_dir}/{qry_image_timestamp}.png\"\n",
|
| 103 |
"qry_utm_timestamp = utils.get_corr_files(qry_image_timestamp, [qry_utm_dir,])\n",
|
| 104 |
"qry_utm = np.loadtxt(qry_utm_timestamp)\n",
|
localisation/plot_utm_traj.ipynb
CHANGED
|
@@ -51,16 +51,11 @@
|
|
| 51 |
"\n",
|
| 52 |
"# User parameters\n",
|
| 53 |
"location = 'Cambogan'\n",
|
| 54 |
-
"# sequence = '20250811_113017'\n",
|
| 55 |
-
"# location = 'Holmview'\n",
|
| 56 |
"\n",
|
| 57 |
"################ Query filenames and directories #################################\n",
|
| 58 |
-
"# qry_sequence = '20250820_130327'\n",
|
| 59 |
"qry_sequence = '20250811_113017'\n",
|
| 60 |
"qry_condition = 'flooded'\n",
|
| 61 |
"qry_camera_pos = 'front'\n",
|
| 62 |
-
"# qry_root_directory = f\"../../Datasets/FRED/{qry_condition}/KITTI-style\"\n",
|
| 63 |
-
"# qry_root_directory = f\"U:/Research/Projects/KVFPRA9190/FRED/{qry_condition}/KITTI-style\"\n",
|
| 64 |
"qry_root_directory = f\"/data/FRED/{qry_condition}/KITTI-style\"\n",
|
| 65 |
"\n",
|
| 66 |
"if not os.path.exists(qry_root_directory):\n",
|
|
@@ -78,12 +73,9 @@
|
|
| 78 |
"qry_timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(qry_image_dir)) if os.path.isfile(qry_image_dir+filename)]\n",
|
| 79 |
"\n",
|
| 80 |
"################ Reference filenames and directories #################################\n",
|
| 81 |
-
"# ref_sequence = '20250812_120100'\n",
|
| 82 |
"ref_sequence = '20250812_122339'\n",
|
| 83 |
"ref_condition = 'dry'\n",
|
| 84 |
"ref_camera_pos = 'front'\n",
|
| 85 |
-
"# ref_root_directory = f\"../../Datasets/FRED/{ref_condition}/KITTI-style\"\n",
|
| 86 |
-
"# ref_root_directory = f\"U:/Research/Projects/KVFPRA9190/FRED/{ref_condition}/KITTI-style\"\n",
|
| 87 |
"ref_root_directory = f\"/data/FRED/{ref_condition}/KITTI-style\"\n",
|
| 88 |
"\n",
|
| 89 |
"if not os.path.exists(ref_root_directory):\n",
|
|
@@ -101,15 +93,12 @@
|
|
| 101 |
"ref_img_filenames = [filename for filename in natsorted(os.listdir(ref_image_dir)) if os.path.isfile(ref_image_dir+filename)]\n",
|
| 102 |
"ref_timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(ref_image_dir)) if os.path.isfile(ref_image_dir+filename)]\n",
|
| 103 |
"\n",
|
| 104 |
-
"end_ref = np.where((qry_utms[-1,0] < ref_utms[:,0]) * (qry_utms[-1,1] > ref_utms[:,1]))[0][0]
|
| 105 |
-
"print(end_ref)\n",
|
| 106 |
-
"\n",
|
| 107 |
-
"# img_calib_file = f\"./camera_calib.txt\""
|
| 108 |
]
|
| 109 |
},
|
| 110 |
{
|
| 111 |
"cell_type": "code",
|
| 112 |
-
"execution_count":
|
| 113 |
"metadata": {},
|
| 114 |
"outputs": [
|
| 115 |
{
|
|
@@ -136,8 +125,7 @@
|
|
| 136 |
"source": [
|
| 137 |
"plt.figure(figsize=(12,4))\n",
|
| 138 |
"plt.plot(qry_utms[:,0]-qry_utms[0,0], qry_utms[:,1]-qry_utms[0,1])\n",
|
| 139 |
-
"plt.plot(ref_utms[:end_ref,0]-qry_utms[0,0], ref_utms[:end_ref,1]-qry_utms[0,1], '--')
|
| 140 |
-
"# plt.savefig('../paper_figures/trajectory_plot.pdf', format=\"pdf\", bbox_inches='tight')"
|
| 141 |
]
|
| 142 |
}
|
| 143 |
],
|
|
|
|
| 51 |
"\n",
|
| 52 |
"# User parameters\n",
|
| 53 |
"location = 'Cambogan'\n",
|
|
|
|
|
|
|
| 54 |
"\n",
|
| 55 |
"################ Query filenames and directories #################################\n",
|
|
|
|
| 56 |
"qry_sequence = '20250811_113017'\n",
|
| 57 |
"qry_condition = 'flooded'\n",
|
| 58 |
"qry_camera_pos = 'front'\n",
|
|
|
|
|
|
|
| 59 |
"qry_root_directory = f\"/data/FRED/{qry_condition}/KITTI-style\"\n",
|
| 60 |
"\n",
|
| 61 |
"if not os.path.exists(qry_root_directory):\n",
|
|
|
|
| 73 |
"qry_timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(qry_image_dir)) if os.path.isfile(qry_image_dir+filename)]\n",
|
| 74 |
"\n",
|
| 75 |
"################ Reference filenames and directories #################################\n",
|
|
|
|
| 76 |
"ref_sequence = '20250812_122339'\n",
|
| 77 |
"ref_condition = 'dry'\n",
|
| 78 |
"ref_camera_pos = 'front'\n",
|
|
|
|
|
|
|
| 79 |
"ref_root_directory = f\"/data/FRED/{ref_condition}/KITTI-style\"\n",
|
| 80 |
"\n",
|
| 81 |
"if not os.path.exists(ref_root_directory):\n",
|
|
|
|
| 93 |
"ref_img_filenames = [filename for filename in natsorted(os.listdir(ref_image_dir)) if os.path.isfile(ref_image_dir+filename)]\n",
|
| 94 |
"ref_timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(ref_image_dir)) if os.path.isfile(ref_image_dir+filename)]\n",
|
| 95 |
"\n",
|
| 96 |
+
"end_ref = np.where((qry_utms[-1,0] < ref_utms[:,0]) * (qry_utms[-1,1] > ref_utms[:,1]))[0][0]"
|
|
|
|
|
|
|
|
|
|
| 97 |
]
|
| 98 |
},
|
| 99 |
{
|
| 100 |
"cell_type": "code",
|
| 101 |
+
"execution_count": null,
|
| 102 |
"metadata": {},
|
| 103 |
"outputs": [
|
| 104 |
{
|
|
|
|
| 125 |
"source": [
|
| 126 |
"plt.figure(figsize=(12,4))\n",
|
| 127 |
"plt.plot(qry_utms[:,0]-qry_utms[0,0], qry_utms[:,1]-qry_utms[0,1])\n",
|
| 128 |
+
"plt.plot(ref_utms[:end_ref,0]-qry_utms[0,0], ref_utms[:end_ref,1]-qry_utms[0,1], '--')"
|
|
|
|
| 129 |
]
|
| 130 |
}
|
| 131 |
],
|
segmentation/show_labels-single.ipynb
CHANGED
|
@@ -11,7 +11,6 @@
|
|
| 11 |
"import sys\n",
|
| 12 |
"sys.path.append(os.path.abspath(\"..\")) # one level up\n",
|
| 13 |
"import numpy as np\n",
|
| 14 |
-
"# print(os.getcwd())\n",
|
| 15 |
"import cv2\n",
|
| 16 |
"import open3d as o3d\n",
|
| 17 |
"import matplotlib.pyplot as plt\n",
|
|
@@ -30,15 +29,12 @@
|
|
| 30 |
"outputs": [],
|
| 31 |
"source": [
|
| 32 |
"# User parameters\n",
|
| 33 |
-
"location = '
|
| 34 |
-
"# location = 'Cambogan'\n",
|
| 35 |
"\n",
|
| 36 |
"################ Query filenames and directories #################################\n",
|
| 37 |
-
"sequence = '
|
| 38 |
-
"# sequence = '20250811_113017'\n",
|
| 39 |
"condition = 'flooded'\n",
|
| 40 |
"camera_pos = 'front'\n",
|
| 41 |
-
"# root_directory = f\"../../Datasets/FRED/{condition}/KITTI-style\"\n",
|
| 42 |
"root_directory = f\"/data/FRED/{condition}/KITTI-style\"\n",
|
| 43 |
"\n",
|
| 44 |
"if not os.path.exists(root_directory):\n",
|
|
|
|
| 11 |
"import sys\n",
|
| 12 |
"sys.path.append(os.path.abspath(\"..\")) # one level up\n",
|
| 13 |
"import numpy as np\n",
|
|
|
|
| 14 |
"import cv2\n",
|
| 15 |
"import open3d as o3d\n",
|
| 16 |
"import matplotlib.pyplot as plt\n",
|
|
|
|
| 29 |
"outputs": [],
|
| 30 |
"source": [
|
| 31 |
"# User parameters\n",
|
| 32 |
+
"location = 'Cambogan'\n",
|
|
|
|
| 33 |
"\n",
|
| 34 |
"################ Query filenames and directories #################################\n",
|
| 35 |
+
"sequence = '20250811_113017'\n",
|
|
|
|
| 36 |
"condition = 'flooded'\n",
|
| 37 |
"camera_pos = 'front'\n",
|
|
|
|
| 38 |
"root_directory = f\"/data/FRED/{condition}/KITTI-style\"\n",
|
| 39 |
"\n",
|
| 40 |
"if not os.path.exists(root_directory):\n",
|
visualisation/points2image-single.ipynb
CHANGED
|
@@ -12,7 +12,6 @@
|
|
| 12 |
"import sys\n",
|
| 13 |
"sys.path.append(os.path.abspath(\"..\")) # one level up\n",
|
| 14 |
"import numpy as np\n",
|
| 15 |
-
"# print(os.getcwd())\n",
|
| 16 |
"import cv2\n",
|
| 17 |
"import open3d as o3d\n",
|
| 18 |
"import matplotlib.pyplot as plt\n",
|
|
@@ -36,18 +35,8 @@
|
|
| 36 |
"# User parameters\n",
|
| 37 |
"location = 'Cambogan'\n",
|
| 38 |
"sequence = '20250811_113017'\n",
|
| 39 |
-
"# location = 'DairyCreek'\n",
|
| 40 |
-
"# sequence = '20250811_103318'\n",
|
| 41 |
-
"# location = 'Mount-Cotton'\n",
|
| 42 |
-
"# sequence = '20241217_113410'\n",
|
| 43 |
"condition = 'flooded'\n",
|
| 44 |
-
"# location = 'Dairy-Creek'\n",
|
| 45 |
-
"# sequence = '20250812_122954'\n",
|
| 46 |
-
"# condition = 'dry'\n",
|
| 47 |
"camera_pos = 'front'\n",
|
| 48 |
-
"# root_directory = f\"../../Datasets/FRED/{condition}/KITTI-style\"\n",
|
| 49 |
-
"# root_directory = f\"C:/Users/conno/Documents/data/FRED/{condition}/KITTI-style\"\n",
|
| 50 |
-
"# root_directory = f\"U:/Research/Projects/KVFPRA9190/FRED/{condition}/KITTI-style\"\n",
|
| 51 |
"root_directory = f\"/data/FRED/{condition}/KITTI-style\"\n",
|
| 52 |
"\n",
|
| 53 |
"if not os.path.exists(root_directory):\n",
|
|
@@ -70,10 +59,8 @@
|
|
| 70 |
"\n",
|
| 71 |
"timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(image_dir)) if os.path.isfile(image_dir+filename)]\n",
|
| 72 |
"\n",
|
| 73 |
-
"
|
| 74 |
-
"
|
| 75 |
-
"image_timestamp = '23641484'\n",
|
| 76 |
-
"# image_timestamp = timestamps[1250]\n",
|
| 77 |
"\n",
|
| 78 |
"image_filename = f\"{image_dir}/{image_timestamp}.png\"\n",
|
| 79 |
"\n",
|
|
@@ -108,16 +95,9 @@
|
|
| 108 |
"\n",
|
| 109 |
"img_vis, _, _, _ = image.project_points(all_points_cam, intensities_cam, cmap, valid_cam, colour_norm=255)\n",
|
| 110 |
"\n",
|
| 111 |
-
"# plt.figure(figsize=(12.8,8))\n",
|
| 112 |
-
"# plt.imshow(image.image[:,:,::-1])\n",
|
| 113 |
-
"# plt.axis('off')\n",
|
| 114 |
-
"\n",
|
| 115 |
-
"os.makedirs('paper_figures/', exist_ok=True)\n",
|
| 116 |
-
"\n",
|
| 117 |
"plt.figure(figsize=(12.8,8))\n",
|
| 118 |
"plt.imshow(img_vis[:,:,::-1])\n",
|
| 119 |
-
"plt.axis('off')\n"
|
| 120 |
-
"# plt.savefig('paper_figures/projected_pointcloud_intensity-v2.pdf', format=\"pdf\", bbox_inches='tight')\n"
|
| 121 |
]
|
| 122 |
}
|
| 123 |
],
|
|
|
|
| 12 |
"import sys\n",
|
| 13 |
"sys.path.append(os.path.abspath(\"..\")) # one level up\n",
|
| 14 |
"import numpy as np\n",
|
|
|
|
| 15 |
"import cv2\n",
|
| 16 |
"import open3d as o3d\n",
|
| 17 |
"import matplotlib.pyplot as plt\n",
|
|
|
|
| 35 |
"# User parameters\n",
|
| 36 |
"location = 'Cambogan'\n",
|
| 37 |
"sequence = '20250811_113017'\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
"condition = 'flooded'\n",
|
|
|
|
|
|
|
|
|
|
| 39 |
"camera_pos = 'front'\n",
|
|
|
|
|
|
|
|
|
|
| 40 |
"root_directory = f\"/data/FRED/{condition}/KITTI-style\"\n",
|
| 41 |
"\n",
|
| 42 |
"if not os.path.exists(root_directory):\n",
|
|
|
|
| 59 |
"\n",
|
| 60 |
"timestamps = [filename.split('.png')[0] for filename in natsorted(os.listdir(image_dir)) if os.path.isfile(image_dir+filename)]\n",
|
| 61 |
"\n",
|
| 62 |
+
"timestamp_idx = 100\n",
|
| 63 |
+
"image_timestamp = timestamps[timestamp_idx]\n",
|
|
|
|
|
|
|
| 64 |
"\n",
|
| 65 |
"image_filename = f\"{image_dir}/{image_timestamp}.png\"\n",
|
| 66 |
"\n",
|
|
|
|
| 95 |
"\n",
|
| 96 |
"img_vis, _, _, _ = image.project_points(all_points_cam, intensities_cam, cmap, valid_cam, colour_norm=255)\n",
|
| 97 |
"\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
"plt.figure(figsize=(12.8,8))\n",
|
| 99 |
"plt.imshow(img_vis[:,:,::-1])\n",
|
| 100 |
+
"plt.axis('off')\n"
|
|
|
|
| 101 |
]
|
| 102 |
}
|
| 103 |
],
|