I hereby claim:
- I am moorage on github.
- I am moorage (https://keybase.io/moorage) on keybase.
- I have a public key ASD544wuQvewbMQvK55Z1srBKpROrC_shqLTkUYSFyoKxQo
To claim this, I am signing this object:
| /** | |
| * Fetches and caches the fully redirected URL for one day (24 hours). | |
| * | |
| * This function follows all redirects for a given URL and stores the final | |
| * redirected URL in the cache for 24 hours. If the URL has already been | |
| * processed within the last 24 hours, the cached result is returned to | |
| * improve performance and limit network requests. | |
| * | |
| * @param {string} url - The original URL to fetch and follow redirects from. | |
| * @return {string} The fully redirected URL after following all redirects. |
| import { i18n } from 'webextension-polyfill'; | |
| if (typeof window === 'undefined') { | |
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | |
| (globalThis as any).window = { | |
| fetch: fetch, | |
| navigator: navigator, | |
| location: { | |
| hash: '', | |
| host: i18n.getMessage(extensionIdString), |
| const gmailBatchEndpoint = 'https://www.googleapis.com/batch/gmail/v1' | |
| const batchLimit = 2 | |
| async function fetchFullMessages( | |
| auth: OAuth2Client, | |
| messageIds: string[] = [] | |
| ) { | |
| const messageQueries = messageIds.map(function (id) { | |
| return { uri: '/gmail/v1/users/me/messages/' + id } |
I hereby claim:
To claim this, I am signing this object:
| import pyrealsense2 as rs | |
| c = rs.context() | |
| devices = c.query_devices() | |
| print(devices) | |
| print(devices[0]) | |
| print(devices[1]) |
| import os, fnmatch, argparse | |
| import numpy as np | |
| import OpenEXR, Imath, json | |
| import shutil, glob | |
| # TODO update to handle stereo camera | |
| # | |
| # python3 greppy_metaverse_dataset_renamer.py --p /path/to/dataset | |
| SUBFOLDER_MAP = { |
| import numpy as np | |
| import OpenEXR, Imath | |
| from scipy.misc import imsave | |
| INPUT_EXR_NORMALS_FILE = '1-world.exr' | |
| OUTPUT_RGB_NORMAL_FILE = '1-world-to-camera.png' | |
| INVERTED_CAMERA_QUARTERNION = np.array([0.8127532005310059, -0.456145316362381, 0.17738527059555054, 0.31606677174568176], dtype=np.float32) | |
| X_CHANNEL_NAME = 'RenderLayer.Normal.X' | |
| Y_CHANNEL_NAME = 'RenderLayer.Normal.Y' |
| # On macOS, you'll need to build the wrapper and export PYTHONPATH=$PYTHONPATH:/____PATH_TO____/librealsense/build/wrappers/python/Debug | |
| import pyrealsense2 as rs | |
| import numpy as np | |
| # Give time for auto-exposure to kick in | |
| CAPTURES_BEFORE_SAVING = 10 | |
| # Create a context object. This object owns the handles to all connected realsense devices | |
| rs_pipeline = rs.pipeline() |
| import bpy | |
| import colorsys | |
| import json | |
| # https://blender.stackexchange.com/a/80047/58635 | |
| def _convert_rgb_to_hsv(red, green, blue): | |
| return colorsys.rgb_to_hsv(*_linear_to_srgb(red, green, blue)) | |
| # https://blender.stackexchange.com/a/80047/58635 | |
| def _linear_to_srgb(r, g, b): |
| cntr = _center_of_object_collection([ D.objects['obj_example1'], D.objects['obj_example2'], ... ]) | |
| def _center_of_object_collection(obs): | |
| min_x = max_x = min_y = max_y = min_z = max_z = None | |
| for ob in obs: | |
| local_vertices = ob.bound_box[:] | |
| worldify = lambda p: ob.matrix_world * Vector(p[:]) | |
| world_vertices = [worldify(p).to_tuple() for p in local_vertices] | |
| for (x,y,z) in world_vertices: | |
| if min_x is None or x < min_x: |