前回の記事に続いて、今度は「遠征」に要する時間を探ります。記事書くの疲れるのであっさりと。 schima.hatenablog.com ℹ️注意 本記事の内容は、ゲーム攻略にはほとんど価値がないと思います。純粋な興味と、調査にあたって要した技術的知見のメモが目的で…
ℹ️注意 本記事の内容は、ゲーム攻略にはほとんど価値がないと思います。純粋な興味と、調査にあたって要した技術的知見のメモが目的です。 本記事にはゲーム中のスクリーンショットが含まれます。以下ガイドラインに沿います。https://www.gamecity.ne.jp/in…
背景 子供を車で公園に連れて行って遊ばせる、ということを最近ちょくちょくやっており、公園を調べまくった成果を書き残しておきます。 家のそばが幹線道路で歩かせにくいとか、小さな公園は大きな子が走り回っていて危ないといった事情です。 当ブログご無…
2年ぶりの更新。どうにか生きています。技術ネタは最近Zennに書きがちなので、ここはそれ以外のことで使っていくかもしれません。 いろいろあって、1か月ほど前に特殊な眼鏡 NEOJIN に新調しました。それほどネットに情報がなかったこともあり、感想や注意点…
また何年振りかという更新です。 課題 .NET Core 3.0から、WPFとWindows Formsがサポートされました。WPFを使う場合のcsprojファイルの基本形は以下です。 (<UseWPF> を <UseWindowsForms> と置き換えればWindows Forms向けになります。) <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>Library</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> …</propertygroup></project></usewindowsforms></usewpf>
久しぶりの投稿です。 C#におけるMessagePackライブラリの中で、高速であるとされる MessagePack-CSharp。 github.com 高速で洗練されているものの、率直に申しますと、MessagePackの古い仕様のサポートが不十分で面倒なようです。その克服の方法です。 ちな…
OpenCVに、なんとログ出力用のクラスがあります。しかもflannの中にです。伏兵過ぎますね。 ごく簡素な実装なのですが、紹介します。
この記事はOpenCV Advent Calendar 2015の23日目の記事です。 qiita.com あらかじめ言います。しょぼいです。すみません! 目次 ネタ 手法 海領域の抽出 輪郭抽出 真ん中の輪郭のみを残す 輪郭の長さを求める 輪郭の長さをkmに変換する 北海道の海岸線長 敗…
この記事はOpenCV Advent Calendar 2015の11日目の記事です。 qiita.com 目次 筆者の環境 やりたいこと オンメモリの意義 リファレンス ファイルの場合 ファイルからcv::Algorithmを読み込み ファイルにcv::Algorithmを保存 オンメモリのFileStorage メモリ…
この記事はOpenCV Advent Calendar 2015の9日目の記事です。初めてこういうのに参加します。 qiita.com 目次 筆者の環境 ネタ概要 C++/CLIによるラッパークラス メモリ不足になるシーン メモリ使用量を見てみる MatAllocatorを自作する MatAllocatorについて…
OpenCVの行列における演算子 * の意味が、C++とPythonで異なるようですね。はまりそうです。PythonはOpenCVというかnumpyの仕様になりますが。
狭いスコープでusingしておくのは大事だなと再認識。 書いたコード byte[] original = File.ReadAllBytes(@"C:\Windows\explorer.exe"); var memory = new System.IO.MemoryStream(); var gzip = new System.IO.Compression.GZipStream( memory, System.IO.C…
ラベリング3度目です。好きですね。露骨に作者の需要が現れています。 OpenCV3.0では、cv::connectedComponents という待望のラベリング(連結成分の抽出)関数が追加されました。 ・OpenCV: Structural Analysis and Shape Descriptors ・New functionality i…
またまただいぶ間隔が空いてしまいすみません・・・ 前回の記事(http://schima.hatenablog.com/entry/2014/09/08/220420)で罵詈雑言を浴びせたOpenCV3.0にOpenCvSharpをひとまず対応させました。 NuGet Gallery | OpenCvSharp3 3.0.0.20150823 Release 3.0…
OpenCvSharpを3.0alphaに対応させる取り組みを始めました。なりふり構わず書き換え、まずはエラーが止まった段階のがこれです。Release 3.0alpha (08 Sep., 2014) · shimat/opencvsharp · GitHub2.0のときもひどい目にあいましたが、今回も何度くじけそうに…
別のプログラムを"ライブラリ"として参照できると、プログラミングは楽です。しかし何らかの理由でそうできず、別の実行ファイルとして呼び出す場合があります。そうするとすぐ直面するのが情報のやりとりをどうするかです。今回は、VirtualAllocExで作った…
知らなかった・・・ C++ (cv::VideoCapture) cv::VideCaptureにて、Cのprintfの要領でこのようにファイル名を指定すると、連番の画像ファイルを動画ストリームとして扱えます。以下の例では、001.png, 002.png, 003.png ... を順次1フレームとして読み込んで…
わたくし、ゆるやかなアンチマカーで、よってど素人なんですが、かの孫子でも「彼を知り己を知れば百戦殆うからず」と申します。それに携帯端末周りは以前から興味があり、知識を広げるのは悪くないと思いました。色々あって会社からMacBookを買ってもらって…
NuGetでかなり状況は好転したとは思いますが、少し前まででは OpenCvSharpを使おうと思った人の9割はP/Invokeエラーでつまづき、そのうち7割は脱落 という状態だった、きっとそう思います。これの(Windowsにおける)特効薬がDependency Walkerです。私はこれ…
せっかくグラボがあるのに腐っていたので、有益なことに使ってみます。OpenCVのcv::gpu名前空間以下にあるGPUモジュールを使い、CUDAの力を確認します。OpenCV 2.4.8です。
OpenCvSharpはもともとC言語のOpenCV 1.0 APIを対象に作っておりました。以来6年経ち、C++ APIが充実し主流になってきたため、そのサポートを進めています。ある程度は仕様が固まってきたので、使い方をご紹介していこうと思います。今回は大まかな概観です…
cv::TickMeter を使いましょう。なんか影の薄いcontribにあります。 cv::TickMeter meter; meter.start(); // 何かの処理 meter.stop(); std::cout << meter.getTimeMilli() << "ms" << std::endl; 定番は以下のような書き方ですが、卒業しましょう。OpenCV…
jsfeatは純粋にJavaScriptのみで動作するコンピュータビジョンのライブラリです。以下がプロジェクトのサイトです。いわゆる基本的な画像処理、線形代数、特徴点抽出などなど色々とサポートしており、期待のプロジェクトです。 http://inspirit.github.io/js…
最近のOpenCVには、以下のような新しいフィルタ処理の関数が追加されています。 cv::fastNlMeansDenoising (photo) cv::adaptiveBilateralFilter (imgproc) この関数がどれくらい使えるものなのか、サクッと試してみました。あまり学術的に正確でないかもし…
おかげさまで好評いただいている(?)このシリーズ、かなり記事が増えてきました。 各記事にリンクを羅列するとすごく長くなってきたので、記事一覧ページを作っておきます。 その1 準備 その2 画像の読み込み その3 グレースケールに変換 その4 フィルタリ…
その19 に少し手を加え、Ajaxによりページ遷移なしに結果画像を表示できるようにしてみます。完成形はこちらに置いてみました。自由に動かしてみてください。 http://notiz.flnet.org/CannyWebApp今回は全部がASP.NET MVCの話で、OpenCvSharpの新しい話はあ…
ボロノイ図・ドロネー図の作成については、大昔からOpenCV C/IFに有りました。C++には無いと思っていたのですが、少し前にいつの間にか有ることを知りました。Cのボロノイ図まわりのAPIは、正直いまだにあまり理解していません。いまひとつ、つかみどころが…
OpenCVをC++ではなくC#(.NET Framework)からわざわざ利用する最大のメリットは何か。単純に言語・開発環境的な理由(書きやすいとか)を挙げる人も多いでしょうが、おそらく本質的に最も大きいのは、.NET Frameworkが持つ膨大なクラスライブラリ・周辺技術等…
この度、ラベリング機能を提供するOpenCvSharp.Blobを、P/Invokeによる実装をやめ、すべてC#(マネージドコード)で実装しなおしました。これは以下の理由からです。 ●特にCvBlobインスタンスの取り回しが悪い。リスト側のCvBlobsが解放されるとCvBlobも解放さ…