Skip to content

Instantly share code, notes, and snippets.

View PolarNick239's full-sized avatar

Nikolai Poliarnyi PolarNick239

View GitHub Profile
@PolarNick239
PolarNick239 / show_3d_model_charts.py
Created June 10, 2024 12:33
Loads 3D model with UV coordinates, assign random colors to texture charts, render 3D model with randomly colored charts, render 2D texture atlas with randomly colored charts
# pip install trimesh pyvista numpy scipy matplotlib pillow pyglet<2
import trimesh
import numpy as np
from PIL import ImageDraw
from scipy.spatial import KDTree
from scipy.sparse.csgraph import connected_components
from scipy.sparse import coo_matrix
import matplotlib.pyplot as plt
from matplotlib.colors import hsv_to_rgb
import pyvista as pv
@PolarNick239
PolarNick239 / vulkan_cpp_raii_examples.md
Created March 7, 2024 10:33
Vulkan C API vs C++ RAII API examples comparison

Vulkan C API vs C++ RAII API examples comparison

Example 1:

// Vulkan C++ API:
vk::BufferCopy region_cpp;
command_buffer.copyBuffer(staging_buffer, vk_data->buffer, region_cpp);
@PolarNick239
PolarNick239 / Gaussian kernels.ipynb
Created February 2, 2024 15:24
Gaussian kernels
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
import numpy as np
import scipy
import scipy.linalg
def ensure_close(P, A):
eps = np.max(np.abs(P)) * 10e-10
assert(np.max(np.abs(P - A)) <= eps)
def qr_decomposition_np(A):
Q, R = np.linalg.qr(A)
@PolarNick239
PolarNick239 / DeepForest_Cars.ipynb
Created July 7, 2021 09:36
DeepForest experiments with Cars detection on Dortmund dataset
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@PolarNick239
PolarNick239 / buildOCV.sh
Created February 13, 2021 18:44
buildOCV.sh + CLion workaround for OpenCV
#!/bin/bash -e
# Adopted from https://docs.opencv.org/master/d3/d52/tutorial_windows_install.html
#
# Changes:
# - version fixed to 4.5.1 - https://github.com/opencv/opencv/releases/tag/4.5.1
# - disabled opencv_contrib
# - RelWithDebInfo instead of Release
#
# How to use:
@PolarNick239
PolarNick239 / morton_code.h
Last active May 22, 2024 12:06
96-bit 3D Morton code (Z-curve)
#pragma once
#include <limits>
#include <cassert>
#include <stdexcept>
#define MORTON_CODE_MAX_LEVEL 32
#define UINT8 unsigned char
#define UINT32 unsigned int
@PolarNick239
PolarNick239 / CMakeLists.txt
Created May 27, 2019 15:51
Optical flow video tracking with per-triplet consistency check, using calcOpticalFlowFarneback from OpenCV
cmake_minimum_required(VERSION 3.13)
project(video_optflow)
set(CMAKE_CXX_STANDARD 14)
find_package(OpenMP)
if (OpenMP_CXX_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
else()
import os
import time
def get_memory(key="total"):
key_to_index = {
"total": 1,
"used": 2,
"free": 3,
"shared": 4,