Skip to content

Instantly share code, notes, and snippets.

View TheSalarKhan's full-sized avatar
💭
I may be slow to respond.

Muhammad Salar Khan TheSalarKhan

💭
I may be slow to respond.
View GitHub Profile
@TheSalarKhan
TheSalarKhan / backgroundAveraging.py
Last active February 12, 2023 03:47
Background Averaging (Background Subtraction) in Python+OpenCV
import numpy as np
import cv2
class BackGroundSubtractor:
# When constructing background subtractor, we
# take in two arguments:
# 1) alpha: The background learning factor, its value should
# be between 0 and 1. The higher the value, the more quickly
# your program learns the changes in the background. Therefore,
import numpy as np
import cv2
from collections import deque
from operator import itemgetter
class BackGroundSubtractor:
# When constructing background subtractor, we
# take in two arguments:
# 1) alpha: The background learning factor, its value should
@TheSalarKhan
TheSalarKhan / transform.py
Created March 23, 2016 22:19
Perspective transformation using Open CV and Python
# This script does a perspective transformation with an A4 paper
# Get an A4 sheet, put it on a table in front of your webcam
# just close enough so that all its corners are visible.
# Run this script, you will be given a frame from the webcam.
# Pick the corners of the A4 sheet for the software, by double clicking on its corners
# one by one in the following order: top left, top right, bottom left, bottom right.
# Just as you select the last corner, a live feed without the perspective distortion
# shows up and now you can write something on it, and have a view of it as if
# the camera was right on top of it. Cheers!
# visit:
@TheSalarKhan
TheSalarKhan / datatablesHighlight.html
Created June 15, 2016 11:15
HIGHLIGHT SEARCH TEXT IN DATA-TABLES: I wanted to highlight the search text, after hours of googling this worked for me.
<!DOCTYPE html>
<html>
<head>
<!-- Include jquery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<!-- Include jquery mark ( for highlighting text )-->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/6.1.0/jquery.mark.min.js"></script>
@TheSalarKhan
TheSalarKhan / MainActivity.java
Last active September 30, 2016 22:48
How to stop main activity from exiting on pressing theback button
package foo.foo.foo.foo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
@TheSalarKhan
TheSalarKhan / Program.cs
Created October 8, 2016 23:21
GZIP Compress/Decompress in C#/JAVA
using System;
using System.IO;
using System.IO.Compression;
using System.Text;
class Program {
private static string Compress(string text)
{
byte[] buffer = Encoding.UTF8.GetBytes(text);
@TheSalarKhan
TheSalarKhan / custom_markers.js
Created November 15, 2016 14:59
This gist uses a custom marker info window style.
<!DOCTYPE html>
<html>
<head>
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script src='https://maps.googleapis.com/maps/api/js?v=3.exp'></script>
@TheSalarKhan
TheSalarKhan / index.html
Created February 14, 2017 17:48
Simple google maps location picker, with address resolution.
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery-1.10.2.min.js"></script>
<!-- be careful to include the parameter "libraries=places" -->
<script type="text/javascript" src='http://maps.google.com/maps/api/js?sensor=false&libraries=places'></script>
<script src="js/locationpicker.jquery.js"></script>
</head>
<body>
<div id="somecomponent" style="width: 500px; height: 400px;"></div>
@TheSalarKhan
TheSalarKhan / usermediapermission.js
Last active February 28, 2020 17:24
Get permission only WEBRTC
function getUserMediaPermission() {
return new Promise((resolve,reject) => {
navigator.mediaDevices.getUserMedia({ video: true, audio: true })
.then(stream => { stream.getTracks().forEach(t => t.stop()); resolve(true) })
.catch(() => { resolve(false) });
});
}
// usage
getUserMediaPermission().then((granted) => { console.log(granted) });
@TheSalarKhan
TheSalarKhan / gist:e1712f00a703b7055575180d8e216161
Created April 3, 2020 22:59
body-parser with custom error
const jsonMiddleware = json({ limit: "10mb", inflate: true });
app.use((req,res,next)=>{
jsonMiddleware(req,res,(err)=>{
if(err){
console.log(err);
res.status(400).json({
status: 400,
message: "Invalid JSON or request too large"
});
} else{