人気ブログランキング | 話題のタグを見る

SmoothingFilter拡張

以前書いたPointの平滑化をさらに拡張、
一度インスタンスを作れば各JointType全てに平滑処理が走るように実装してみた。
でもコレの違いってやってる人じゃないと分かんないかもしれない。
個人的にはかなりヌルヌル動いてて結果に満足だけど・・・。

以下ソース

using System;
using System.Windows;
using System.Collections.Generic;
using Microsoft.Kinect;

namespace Microsoft.Samples.Kinect.BodyBasics
{
class SmoothingPoint
{
private static Dictionary<JointType, Queue<Point>> pointBufferS = new Dictionary<JointType, Queue<Point>>();
private static Dictionary<JointType, Queue<Point>> pointBufferE = new Dictionary<JointType, Queue<Point>>();

public SmoothingPoint()
{
foreach (JointType jt in Enum.GetValues(typeof(JointType)))
{
pointBufferS.Add(jt, new Queue<Point>());
pointBufferE.Add(jt, new Queue<Point>());
}
}

public Point Smoothing(JointType jType, Point p)
{
return DoubleMovingAverage(jType, p);
}

private Point SimpleAverageFilter(JointType jt, Point newPoint, int parameter)
{
pointBufferS[jt].Enqueue(newPoint);
if (pointBufferS[jt].Count <= parameter)
{
return newPoint;
}
pointBufferS[jt].Dequeue();
Point[] list = pointBufferS[jt].ToArray();
Point point = new Point();
double x = 0;
double y = 0;

int n = pointBufferS[jt].Count;
for (int i = 0; i < pointBufferS[jt].Count; i++)
{
Point p = list[i];
x += p.X;
y += p.Y;
}
point.X = x / n;
point.Y = y / n;

return point;
}

private Point DoubleMovingAverage(JointType jt, Point newPoint, int parameter = 5)
{
Point newSimpleAverage = SimpleAverageFilter(jt, newPoint, parameter);
pointBufferE[jt].Enqueue(newSimpleAverage);
if (pointBufferE[jt].Count <= parameter)
{
return newSimpleAverage;
}
pointBufferE[jt].Dequeue();
Point[] list = pointBufferE[jt].ToArray();
Point point = new Point();
double x = 0;
double y = 0;

int n = pointBufferE[jt].Count;
for (int i = 0; i < pointBufferE[jt].Count; i++)
{
Point p = list[i];
x += p.X;
y += p.Y;
}
point.X = x / n;
point.Y = y / n;

return point;
}
}
}


# by onigirism | 2015-12-10 18:26 | C# | Comments(0)

Excelの進化による退化

Excelでデータの集計をしてて、データをコピーしたタイミングでこんなのが出る

Excelの進化による退化_e0349767_13244938.png
もうね、すっごい邪魔

多くの人はコピペをする際にCtrl+Cを使うと思うんだけど

タイミングミスった時にCtrlキーだけ押しちゃうとかってよくあると思うんですよね。

そうするとコイツが

Excelの進化による退化_e0349767_13274152.png
こんな風になって「オラオラ、選べよ」みたいな感じになっちゃう。

Excelの用途によっては便利なんだけど、今は邪魔でしかない。

ということで無効にする方法は以下。

ファイル→オプション→詳細設定と移動、
「切り取り、コピー、貼り付け」の項目にある
「コンテンツを貼り付けるときに[貼り付けオプション]ボタンを表示する」のチェックを外す

ついでにもう一つ
ファイル→オプション→詳細設定と移動、
「ユーザーインターフェイスのオプション」の項目にある
「選択時にクイック分析オプションを表示する」のチェックも外す

これは何かって言うと範囲選択時に出て来るやつで、貼り付けオプションと同じくCtrlキーで小窓が開く邪魔者
これでストレスなくコピペが出来るというものです。めでたしめでたし。


# by onigirism | 2015-11-26 13:34 | アプリ | Comments(0)

Visual Studio Code再定義

なんかTwitterのトレンドに挙がってたのでお題にしてみた。

VisualStudioCode(スぺース入れた方がいいのか繋げて書いていいのか・・・)

取りあえずMS謹製なだけあって第一印象から良さげなエディタです。

多言語対応はもちろんインテリセンスも充実してるし、Gitも標準装備。

シンプルにして高機能、さすがMSですな(テノヒラクルー)

あとGrepとかMargeまで出来れば秀丸とかいらんくなるんだけどなー。

ところでインストール先が今までのα版とは違うんだけど、消していいのかな?

そもそもこんなところに入れるのかよって感じだったけどね、α版
(C:\Users\user\AppData\local\Codeなんていうとんでもパス)

ようやくβレベルまで上がってきたってことなのかな

ちょっと使ってみますかね

# by onigirism | 2015-11-19 11:19 | プログラミング | Comments(0)

Microsoft HoloLens

1ヵ月も空いてしまった。

MSのHoloLens、気になりますね

AR、VRに続いてMR(Mixed Reality)を提唱してるけど、まぁ形式的にはARになるんだろうね。

先日このHoloの開発キットが発売されたけど、お値段は約37万円。

うーん、個人で買うには少々キツイレベル。

(LEAPMOTIONくらいなら自腹で購入出来たんだけど)

プレステ2の開発機も30万ぐらいしたとか聞いてるし、まぁこういったdevキットってそもそもこれくらいするもんなんでしょう。

Kinect v2のDev版(確か10万弱)が安い部類に入ってたんだな、知らなかったよ。

本題のHoloはKinectと親和性が高い!という売り文句があったけど、確かにそれはホントそう思う。

開発環境としてもVisualStudioベースになるだろうから、Kinectの開発してた人はより入りやすいんだろうなぁ。


で、新しいモノってのは性能はもちろん、活用方法についてが今後の課題になってくる。

Kinectも機能的にはかなり優秀なデバイスではあったけど、いかんせん用途が貧弱でなかなか表舞台で目立てなかった。

実際これまで案件としてKinectが採用されたのは、片手で数えて余るくらいだと思う。

MSのマーケティングもアピールが全然ないから知らない人も多い。(MSのこの辺の能力はホント弱小企業レベル)

Holoも然り、イベントや展示会に導入するには、回転率が悪すぎてクライアントに魅力を感じさせることが出来るかというと疑問。

一般販売する前にここにHoloあり!って存在感を示せる使い方を技術者も考えていかないと。

まぁ家庭用でその人生終えるだけでいいならいいけど、そりゃ最新技術の持ち腐れですよ、MSさん・・・。

# by onigirism | 2015-11-17 12:28 | Kinect | Comments(0)

Androidのオススメアプリ2

ひさびさに第2回(早くもネタ切れ感)

Tiny Call Confirm

電話が掛かってくるとワンタッチで通話状態になるスマホ。

逆にこっちからもワンタッチでコール出来るスマホ。

しかし予期せぬ操作で知らんうちに電話掛けるデメリットも。

ポケットにスマホ入れてるとこに手突っ込んだら勝手に電話しちゃった、みたいな。

そういう誤動作を防ぐアプリです。

電話帳から通話先を選択→電話掛ける

このプロセスに

電話帳から通話先を選択→ 確認 →電話掛ける

というワンクッション。

UIとしては指でスライドして発信する感じなので誤作動することがない優れもの。

アプリは多分常駐型だけどメモリには大して影響ないので、入れておいて損はないと思います。



# by onigirism | 2015-10-08 17:18 | スマホ | Comments(0)