「信長の野望 出陣」の遠征時間を探る

前回の記事に続いて、今度は「遠征」に要する時間を探ります。記事書くの疲れるのであっさりと。 schima.hatenablog.com ℹ️注意 本記事の内容は、ゲーム攻略にはほとんど価値がないと思います。純粋な興味と、調査にあたって要した技術的知見のメモが目的で…

「信長の野望 出陣」の石高を探る

ℹ️注意 本記事の内容は、ゲーム攻略にはほとんど価値がないと思います。純粋な興味と、調査にあたって要した技術的知見のメモが目的です。 本記事にはゲーム中のスクリーンショットが含まれます。以下ガイドラインに沿います。https://www.gamecity.ne.jp/in…

札幌圏の車で行ける公園レビュー

背景 子供を車で公園に連れて行って遊ばせる、ということを最近ちょくちょくやっており、公園を調べまくった成果を書き残しておきます。 家のそばが幹線道路で歩かせにくいとか、小さな公園は大きな子が走り回っていて危ないといった事情です。 当ブログご無…

鼻パッドがない眼鏡「NEOJIN」のレビュー

2年ぶりの更新。どうにか生きています。技術ネタは最近Zennに書きがちなので、ここはそれ以外のことで使っていくかもしれません。 いろいろあって、1か月ほど前に特殊な眼鏡 NEOJIN に新調しました。それほどネットに情報がなかったこともあり、感想や注意点…

.NET Core 3と2以下の混在下でWPF/WinFormを有効にする

また何年振りかという更新です。 課題 .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>

MessagePack for C# でMessagePack旧仕様のbyte[]に対応させる

久しぶりの投稿です。 C#におけるMessagePackライブラリの中で、高速であるとされる MessagePack-CSharp。 github.com 高速で洗練されているものの、率直に申しますと、MessagePackの古い仕様のサポートが不十分で面倒なようです。その克服の方法です。 ちな…

OpenCVのLogger

OpenCVに、なんとログ出力用のクラスがあります。しかもflannの中にです。伏兵過ぎますね。 ごく簡素な実装なのですが、紹介します。

島の海岸線の長さを推定してみる

この記事はOpenCV Advent Calendar 2015の23日目の記事です。 qiita.com あらかじめ言います。しょぼいです。すみません! 目次 ネタ 手法 海領域の抽出 輪郭抽出 真ん中の輪郭のみを残す 輪郭の長さを求める 輪郭の長さをkmに変換する 北海道の海岸線長 敗…

オンメモリのFileStorage

この記事はOpenCV Advent Calendar 2015の11日目の記事です。 qiita.com 目次 筆者の環境 やりたいこと オンメモリの意義 リファレンス ファイルの場合 ファイルからcv::Algorithmを読み込み ファイルにcv::Algorithmを保存 オンメモリのFileStorage メモリ…

MatAllocatorとGC

この記事はOpenCV Advent Calendar 2015の9日目の記事です。初めてこういうのに参加します。 qiita.com 目次 筆者の環境 ネタ概要 C++/CLIによるラッパークラス メモリ不足になるシーン メモリ使用量を見てみる MatAllocatorを自作する MatAllocatorについて…

OpenCVにおける行列の"掛け算"

OpenCVの行列における演算子 * の意味が、C++とPythonで異なるようですね。はまりそうです。PythonはOpenCVというかnumpyの仕様になりますが。

GZip(Deflate)Streamで圧縮するときはCloseを忘れなく

C#

狭いスコープで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…

OpenCvSharpをつかう その24 (OpenCV 3.0のラベリング)

ラベリング3度目です。好きですね。露骨に作者の需要が現れています。 OpenCV3.0では、cv::connectedComponents という待望のラベリング(連結成分の抽出)関数が追加されました。 ・OpenCV: Structural Analysis and Shape Descriptors ・New functionality i…

OpenCvSharpをつかう その23 (OpenCV 3.0対応)

またまただいぶ間隔が空いてしまいすみません・・・ 前回の記事(http://schima.hatenablog.com/entry/2014/09/08/220420)で罵詈雑言を浴びせたOpenCV3.0にOpenCvSharpをひとまず対応させました。 NuGet Gallery | OpenCvSharp3 3.0.0.20150823 Release 3.0…

OpenCV3.0alpha 変更点レビュー ~ラッパー開発者の視点から~

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フレームとして読み込んで…

System.Windows.Forms.WebBrowser あれこれ備忘録

XcodeでiOS向けOpenCV

わたくし、ゆるやかなアンチマカーで、よってど素人なんですが、かの孫子でも「彼を知り己を知れば百戦殆うからず」と申します。それに携帯端末周りは以前から興味があり、知識を広げるのは悪くないと思いました。色々あって会社からMacBookを買ってもらって…

OpenCvSharpをつかう その22 (Dependency Walker)

NuGetでかなり状況は好転したとは思いますが、少し前まででは OpenCvSharpを使おうと思った人の9割はP/Invokeエラーでつまづき、そのうち7割は脱落 という状態だった、きっとそう思います。これの(Windowsにおける)特効薬がDependency Walkerです。私はこれ…

OpenCV GPUモジュールを試す

せっかくグラボがあるのに腐っていたので、有益なことに使ってみます。OpenCVのcv::gpu名前空間以下にあるGPUモジュールを使い、CUDAの力を確認します。OpenCV 2.4.8です。

OpenCvSharpをつかう その21(C++ API 概要)

OpenCvSharpはもともとC言語のOpenCV 1.0 APIを対象に作っておりました。以来6年経ち、C++ APIが充実し主流になってきたため、そのサポートを進めています。ある程度は仕様が固まってきたので、使い方をご紹介していこうと思います。今回は大まかな概観です…

OpenCVで時間の計測

cv::TickMeter を使いましょう。なんか影の薄いcontribにあります。 cv::TickMeter meter; meter.start(); // 何かの処理 meter.stop(); std::cout << meter.getTimeMilli() << "ms" << std::endl; 定番は以下のような書き方ですが、卒業しましょう。OpenCV…

JavaScriptのコンピュータビジョンライブラリ「jsfeat」を試す

jsfeatは純粋にJavaScriptのみで動作するコンピュータビジョンのライブラリです。以下がプロジェクトのサイトです。いわゆる基本的な画像処理、線形代数、特徴点抽出などなど色々とサポートしており、期待のプロジェクトです。 http://inspirit.github.io/js…

OpenCV(2.4.8)による新しいノイズ除去 ざっくり精度調べ

最近のOpenCVには、以下のような新しいフィルタ処理の関数が追加されています。 cv::fastNlMeansDenoising (photo) cv::adaptiveBilateralFilter (imgproc) この関数がどれくらい使えるものなのか、サクッと試してみました。あまり学術的に正確でないかもし…

OpenCvSharpをつかう 記事一覧

おかげさまで好評いただいている(?)このシリーズ、かなり記事が増えてきました。 各記事にリンクを羅列するとすごく長くなってきたので、記事一覧ページを作っておきます。 その1 準備 その2 画像の読み込み その3 グレースケールに変換 その4 フィルタリ…

OpenCvSharpをつかう その20(ASP.NET MVCで使う Ajax編)

その19 に少し手を加え、Ajaxによりページ遷移なしに結果画像を表示できるようにしてみます。完成形はこちらに置いてみました。自由に動かしてみてください。 http://notiz.flnet.org/CannyWebApp今回は全部がASP.NET MVCの話で、OpenCvSharpの新しい話はあ…

OpenCV C++/IFでボロノイ図・ドロネー図を描く

ボロノイ図・ドロネー図の作成については、大昔からOpenCV C/IFに有りました。C++には無いと思っていたのですが、少し前にいつの間にか有ることを知りました。Cのボロノイ図まわりのAPIは、正直いまだにあまり理解していません。いまひとつ、つかみどころが…

OpenCvSharpをつかう その19(ASP.NET MVCで使う 入門編)

OpenCVをC++ではなくC#(.NET Framework)からわざわざ利用する最大のメリットは何か。単純に言語・開発環境的な理由(書きやすいとか)を挙げる人も多いでしょうが、おそらく本質的に最も大きいのは、.NET Frameworkが持つ膨大なクラスライブラリ・周辺技術等…

OpenCvSharpをつかう その18(ラベリング・改)

この度、ラベリング機能を提供するOpenCvSharp.Blobを、P/Invokeによる実装をやめ、すべてC#(マネージドコード)で実装しなおしました。これは以下の理由からです。 ●特にCvBlobインスタンスの取り回しが悪い。リスト側のCvBlobsが解放されるとCvBlobも解放さ…