プログラミング・プロコン

ハミング距離の計算はホントに速いのか?

これは@sakanazensen君が主催する『Computer Vision Advent Calendar 2013』の12/8の記事です。今年はあまり活発でないようなので、小ネタですが参戦しました。

Google Code Jam 2013 - Qualification Round

先日GCJの予選ラウンドが開催されました。昨年に引き続きPythonの練習のために参加しました。が普段全然使わないのでほぼ完全に文法とか忘れてましたが(爆)。彼女が遊びに来ていて旅行とかしてたので実は疲れてやる気なかったんですが、なんか「Cだけ完答…

Google Code Jam 2012 - Qualification Round

今年もGCJの季節がやってきました。年々参加者が増えて競争が激化しつつありますね。自分はGCJはこれで3回目なのですが、毎度多倍長演算とかに悩まされてるもんで、ここ最近はPythonの練習がてらに参加しています。研究でも細々したプログラムはPythonで作っ…

Google Code Jam Japan 2011 - Final Round

GCJの日本大会でごわす。200位以上でGoogleTシャツがもらえるとかでマジ狙いしてたのですが、残念ながら211位で無理でした。終盤、Small一つを狙う作戦に切り替えたのですが、切り替えが遅すぎてデバッグが間に合わず(笑)。最近の若い子たちのスピードに、…

Color Coherence Vector の実装

【追記:2013/03/25】αとβの求め方が論文と一致していないというご指摘を受け、該当箇所(//alphaと//betaの行)を修正いたしました。ご迷惑おかけしました。 Color Coherence Vector (CCV) というのは色に基づく画像検索の一手法です。結構昔の文献ながら最…

ほぼワンパスなラベリング処理

画像処理の基礎的な処理の一つにラベリング処理というのがあります。これは連結する画素・領域をくっつけていって、最終的に同じ性質を持つ領域ごとに番号(ラベル)をふるというものです。このラベリングには数多くのやり方があり、突き詰めていけばワンパ…

Google Code Jam 2011 - Qualification Round

昨年に続き、2回目の参加でごわす。25点以上取れればRound1に進めます。だいぶ時間かかったけど、今年はなんとかScore:100(Rank:1269)で通過できました(^_^)v。問題等はこちら。 http://code.google.com/codejam/contest/dashboard?c=975485# A. Bot Trust …

非VisualStudio環境でC++/CLIが動かない問題の解決策

まータイトル通りなんですが、同様の現象で困っている方も多いと思いますので、ここにまとめておきます。

C++でのオブジェクトの値返しはモーマンタイ?

自分は9年ばかし Java と C# を扱ってまして、ほとんど「GC元年生まれ」みたいなプログラマです。なので、GCありきの実装法である「関数内でオブジェクトをnewしてそれを返す」なんてのを常識的にやっていました。ところが、5年ほど前から C++ を使うよう…

VC2010で「デバッグなし実行」なのにコンソールが勝手に閉じる

備忘録です。少し前にも全く同じ問題でハマったのに、解決法忘れてて無駄に時間くいました。 一般に、VisualC++でコンソールアプリケーションを「デバッグ実行(F5)」するとプログラム終了時にコンソールウインドウが即座に閉じますが、「デバッグなし実行…

Google Code Jam 2010 - Round 1A

GCJのRound1(前回は所謂Round0w)。Round1にはA,B,Cの3つがあって、そのうちどれかの上位1000人に入ればラウンド2進出。仮にAがダメでもB、BがダメでもCに参加でき、通過した以降の試合への参加はできない。まー要するに3000人がラウンド2に行けると。 …

Google Code Jam 2010 - Qualification Round

初参加です。競技系のコンテストは2年ぶり。前はガッツリICPCとか少〜しTopCoderとかしてたくらい。 Dashboard - Qualification Round 2010 - Google Code Jam 予選参加のためのエントリー資格検定試験みたいなやつ(笑)なので、レベルはそんなに高くない…

オブジェクト指向言語で理解する可算名詞

最近、英語をプログラミング言語の一種と捉えてみたらどうなるだろう・・・とか暇つぶしがてら考えてたのですが、先日それについて高専の後輩に話してみたら凄く反応が良かったので、今回ブログに書いてみました。 タイトルはその名も『オブジェクト指向で理…

.NETにおけるDllImportではないネイティブライブラリの使用法

画像処理なんかのように高速演算が求められる場面では、GUI部分で開発効率に優れたC#を使い、高速化が必要な部分でだけネイティブC/C++を使いたいなぁと思うことがしばしばあります。しかし、DllImportだとDLL作るのは若干面倒*1ですし、この時代にあえて非.…

再帰呼び出しはなぜ必要か?

プログラミングの授業で『関数の再帰呼び出し』を習うと思う。実例で言うと、先生が↓なコードを示した上で「こういう関数を作れば階乗(n!)が計算できます」と説明する。 int fact(int n) { if(n==0) return 1; return n*fact(n-1); } しかし学生は↓なコード…

ACM/ICPC2009 国内予選

自分はOBなので後輩たちの観戦をばしとりました。ドキドキして仕事が手につきませんでした(笑)。参加を把握してるのは、 チームA:【id:hyon】、AND チームB:【id:nsj】、【id:brain5include】 チームTK:【id:kouri128】 チームC:【id:MOCHI】 チームQ…

Python

コルン先輩【id:colun】から勧められたので、ちょっくらPythonを勉強しようと思うのですが、どなたか良い書籍とか知りませんか?。C/C++,C#の知識ならあるけど、Webアプリにはあまり詳しくない人向けな感じで。ネットワーク関連は、自作サーバー設置とかソケ…

高専プロコン2009

数年前に熱中していた高専プロコン。コルン先輩【id:colun】が競技部門用のWebアプリケーション作ったようなので、宣伝しておきます。なかなか素晴らしいデキですよ。 http://pc-2009.appspot.com/ ゲームのルール等は各自公式サイトなどを参照してください…

Cygwinの発音

日本では“シグウィン”と発音するのが一般的だと思ってるけど、海外ではどうなんだろう?。昨日のエントリ書いてて、ふと次のことを思い出しました。 2ヶ月くらい前の話だけど、隣の席のJ(中国人)が「オレは“サイグウィン”でコンパイルしてるぜ」って言っ…

WindowsでGCC4

画像研究などで配布されているソースコードはたいていGCCを対象したものであり、VSやBCCではコンパイルできない場合が多々あるので、WindowsユーザーはCygwinやMinGWなどを使ってる方が多いかと思います。個人的にCygwinの独自コンソール表示とcygwin1.dllを…

VS2008をタダで手に入れる方法

マイクロソフトが学生向けに無償でソフトウェアを提供する『DreamSpark』という企画を行っています。さすが超大企業。 期間限定!教育機関向け 新 Office お試しキャンペーン! | マイクロソフト 教育機関向け 国際学生証というものが必要とのこと。生協で…

.NETの例外一覧

作ろうかなーと思ってたら見つけた。これはナイスエントリ!。 【id:Schima:20090201】 コンポーネント作成とかだと、しっかり例外を投げてあげないと実用にならないので、例外クラスの意味とかをちゃんと“まとめて”把握したかったんですが、だいぶ助かりま…

ライセンス

昨日語ったウェブカメラコンポーネントはオープンソースで配布するつもりだったのだが、DirectShow.Netの再配布ってライセンス的に問題ないのか?と心配になって調べてみた。恥ずかしながら、オレはライセンスについて詳しくないので、今日はひたすらライセ…

C#2.0でDirectShowに挑戦中

カメラから取り込んだ映像をリアルタイムに画像処理して画面表示する実験なんかでは、OpenCVライブラリを利用するのがポピュラーかと思う。ただ、OpenCVは凝ったGUIプログラミングはできず、本格的なデモアプリには力不足なときがある。かといってC++でDirec…