Skip to content

Instantly share code, notes, and snippets.

Avatar

non117 non117

  • Kyoto
View GitHub Profile
@non117
non117 / distance.py
Created Feb 10, 2014
緯度経度 to メートル
View distance.py
from math import sqrt, sin, cos, pi
def distance(lat1, lon1, lat2, lon2):
"""
Hubeny method
args : latitude1, longitude1, latitude2, longitude2 (degree)
return : m
"""
View zoi.py
import cv2
import numpy as np
def main():
f = 'hoge.png'
im = cv2.imread(f)
im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
hist = cv2.calcHist([im_gray],[0],None,[256],[0,256])
cv2.normalize(hist, hist, 0, 255, cv2.NORM_MINMAX)
im_out = cv2.equalizeHist(im_gray, hist)
@non117
non117 / payo.py
Created Sep 13, 2014
pathlibとshutilを使ってファイルのコピーとか
View payo.py
# -*- coding: utf-8 -*-
import shutil
from pathlib import Path
dst = Path('dst')
lis = open('prior-reedit-sorted.txt').readlines()
for filename in lis:
d,_,_, f = filename.strip().split('_')
path = Path(d) / Path('_'+f)
@non117
non117 / kancolle.py
Created Sep 26, 2014
やばいやつ
View kancolle.py
# -*- coding: utf-8 -*-
import json
import operator
import re
import time
import threading
from datetime import datetime
from functools import partial
from getpass import getpass
from random import randint
@non117
non117 / kinectv2.md
Last active Aug 29, 2015
OUCC Advent Calendar 2014 7日目
View kinectv2.md

すごいKinect たのしくラボ畜!

こんにちは. @non117 です. この記事はOUCC アドベントカレンダー 2014 7日目の記事です. 今日は私が研究で使ってるKinect v2について紹介しようと思います.

Kinectとは

KinectとはXbox 360のために開発されたNUI(ナチュラルユーザインターフェイス)の一つで, ジェスチャーや音声認識によってゲームへコマンドを入力するデバイスです. Kinectは普通のRGBカメラと赤外線カメラ, マイクを積んでおり, 人間の位置, 動き, 声などを認識することができます.

もともとはゲームの入力デバイスだったのですが, 安価な深度センサとして注目されてしまったお陰でエンタメ系の人々やガチ研究者の目についてしまいました. その結果, 有志がKinectの解析を行ったりOSSのドライバ(今はなきOpenNI)を書いたりして, 今や安価なモーションキャプチャのデファクトスタンダードとなってしまいました.

View reader.cs
// private MultiSourceFrameReader multiFrameSourceReader = null;
this.multiFrameSourceReader = this.kinectSensor.OpenMultiSourceFrameReader(FrameSourceTypes.Depth | FrameSourceTypes.Color | FrameSourceTypes.Body | FrameSourceTypes.BodyIndex);
this.multiFrameSourceReader.MultiSourceFrameArrived += this.FrameArrived;
View handler.cs
private void FrameArrived(object sender, MultiSourceFrameArrivedEventArgs e)
{
bool multiSourceFrameProcessed = false;
bool colorFrameProcessed = false;
bool depthFrameProcessed = false;
bool bodyIndexFrameProcessed = false;
MultiSourceFrame multiSourceFrame = e.FrameReference.AcquireFrame();
if (multiSourceFrame != null)
{
View cut.cs
for (int y = 0; y < depthHeight; ++y)
{
for (int x = 0; x < depthWidth; ++x)
{
int depthIndex = (y * depthWidth) + x;
byte player = bodyIndexBuffer[depthIndex];
if (player != 0xff)
{
ushort depth = depthBuffer[depthIndex];
ColorSpacePoint colorPoint = this.coordinateMapper.MapDepthPointToColorSpace(x, y, depth);
@non117
non117 / cv.py
Created Jan 2, 2015
cvで背景差分
View cv.py
# -*- coding: utf-8 -*-
import cv2
def main():
cap = cv2.VideoCapture(0)
#cap = cv2.VideoCapture('opatan.mp4')
ret, frame = cap.read()
if not ret:
return
@non117
non117 / scraping_template.py
Last active Aug 29, 2015
スクレイピングテンプレート.py
View scraping_template.py
# -*- coding: utf-8 -*-
import lxml.html
import requests
from pathlib import Path
'''
urlを叩いてxpathを適用したelement[]を返すよ
'''
def getElement(url, xpath):
res = requests.get(url)