Skip to content

Instantly share code, notes, and snippets.

View companje's full-sized avatar

Rick Companje companje

View GitHub Profile
@companje
companje / tps-remap.py
Last active August 28, 2023 16:30
Fast mapping with Thin Plate Spline Shape Transformer and remap
import cv2
import numpy as np
w,h = 640,480
cam = cv2.VideoCapture(0)
cam.set(cv2.CAP_PROP_EXPOSURE,-6)
cv2.namedWindow("src")
cv2.namedWindow("dst", cv2.WINDOW_NORMAL)
cv2.moveWindow("dst",w,0)
@companje
companje / Draw Quads.py
Last active August 28, 2023 09:31
Textured Quads in Py5 (Processing / Python)
import py5
class Quad:
def __init__(self, s):
self.p = list(map(int, s.split(" ")))
def load_quads(filename):
return [Quad(s) for s in py5.load_strings(filename)]
def draw_quads(xy_quads, uv_quads, tex):
@companje
companje / Quads.pde
Last active August 28, 2023 08:41
Quads
PImage cam, screen;
ArrayList<Quad> cam_quads, screen_quads;
void setup() {
size(1280, 480, P3D);
cam = loadImage("vis_200.png");
cam_quads = load_quads("cam_quads.txt");
screen_quads = load_quads("screen_quads.txt");
}
@companje
companje / 0-texture-mapping-in-opencv.py
Last active August 27, 2023 10:55
Unwarp with multiple getPerspectiveTransform / warpPerspective calls. UPDATE: using ThinPlateSplineShapeTransformer now
# By Rick Companje, 2023-08-26
# Enjoy!
# inspired by: https://stackoverflow.com/questions/10196198/how-to-remove-convexity-defects-in-a-sudoku-square/11366549#11366549
# Please let me know if you know an easier/better way to achieve this simple 2D mapping in OpenCV.
# Something like OpenGL vertex / texcoords approach but then in OpenCV...
import cv2,csv
import numpy as np
@companje
companje / 001.py
Last active August 9, 2023 06:50
stretch and colorize cam channels
#https://becominghuman.ai/real-time-finger-detection-1e18fea0d1d4
def bgSubMasking(self, frame):
"""Create a foreground (hand) mask
@param frame: The video frame
@return: A masked frame
"""
fgmask = bgSubtractor.apply(frame, learningRate=0)
kernel = np.ones((4, 4), np.uint8)
@companje
companje / Image over Socket.IO.js
Created September 3, 2014 17:46
Image over Socket.IO
//NodeJS
var express = require('express');
var app = express();
var http = require('http').Server(app);
var fs = require('fs');
var io = require('socket.io')(http);
app.use(express.static(__dirname, '/'));
io.on('connection', function(socket){
@companje
companje / ocr mac.py
Created April 25, 2023 11:59
ocr mac
#!/Applications/Xcode.app/Contents/Developer/usr/bin/python3
import config,json,os,subprocess,ocr2json
from tqdm import tqdm
from joblib import Parallel, delayed
import Quartz,Vision
from Cocoa import NSURL
from Foundation import NSDictionary
from wurlitzer import pipes # needed to capture system-level stderr
@companje
companje / 1.opvragen-licenties-na-1948.sparql
Last active March 10, 2023 21:42
SPARQL + SQL queries voor het opvragen en bijwerken van de afbeeldingen waarbij de licentie verkeerd staat
PREFIX v: <https://archief.io/veld#>
PREFIX soort: <https://archief.io/soort#>
SELECT ?id
#, ?Jaar, ?Catalogusnummer, ?Beschrijving
FROM <https://data.netwerkdigitaalerfgoed.nl/MI2RDF/mi2rdf/graphs/HUA-beeldbank-april2020-9bestanden>
WHERE {
?foto v:id ?id .
@companje
companje / clock.pde
Created May 21, 2012 18:41
Arc Clock in Processing
float heleCirkel = TWO_PI; //tau
void setup() {
size(500,500);
background(0);
smooth();
}
void draw() {
background(0);
@companje
companje / cube.cpp
Created May 21, 2012 19:01
RGB Cube with ofMesh and ofVbo
//////////////////////////////////////////////////////////////
// testApp.h
//////////////////////////////////////////////////////////////
#pragma once
#include "ofMain.h"
class testApp : public ofBaseApp {
public: