OpenCV

OpenCVのLogger

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

オンメモリの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について…

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

OpenCvSharpを3.0alphaに対応させる取り組みを始めました。なりふり構わず書き換え、まずはエラーが止まった段階のがこれです。Release 3.0alpha (08 Sep., 2014) · shimat/opencvsharp · GitHub2.0のときもひどい目にあいましたが、今回も何度くじけそうに…

連番の画像ファイルを動画として扱う

知らなかった・・・ C++ (cv::VideoCapture) cv::VideCaptureにて、Cのprintfの要領でこのようにファイル名を指定すると、連番の画像ファイルを動画ストリームとして扱えます。以下の例では、001.png, 002.png, 003.png ... を順次1フレームとして読み込んで…

XcodeでiOS向けOpenCV

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

OpenCVで時間の計測

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

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

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

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

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

積分画像(Integral Image)による、Sauvolaの手法の高速化

先日の記事にて、適応的二値化の一手法であるSauvola[1]の手法について紹介しました。閾値の計算式は単純で、実装は割と簡単です。しかし1ピクセルごとに周囲の平均・標準偏差を求めるのは、結構コストがかかる処理です。これを積分画像(Integral Image)に…

OpenCvSharpをつかう その14(Debian wheezyで動かす)

3年ぶりの「OpenCvSharpをつかう」シリーズ再開です! OpenCvSharpをLinuxで動かすことについては、大昔に断片的に書きましたが、最後まで通しで書いてみます。記憶を頼りに書いているので、本当は詰まった箇所が抜けているかもしれません。 その1 その2 そ…

OpenCV 2.2で変更・追加されたもの (C Interface)

C形式の関数・構造体がOpenCV2.1からどれだけ変わったかをまとめておき、ラッパー開発の指針にしようと思います。例によって多分どこか抜けています。また、C++の方はまとめる気はありません。公式の変更点はこちら。実際のところこちらに全て載っています。…

OpenCV 2.1の関数 CとC++の対照表 (未完)

OpenCVの関数の利用は、これから徐々にC形式からC++形式へと移行していく感じがします。今までC形式の関数に慣れ親しんだ人がC++でやろうとしたとき、大抵は関数の名前が似ていてすぐわかるのですが、全然違うものもあり、そもそも対応するものが無かったり…

OpenCV 2.0 でのhighguiの新しい関数 不完全一覧

以前にcvについて新しく増えた関数の一覧を書きました。http://d.hatena.ne.jp/Schima/20090911/1252661453今回はhighguiについてもまとめておきます。新しく追加された関数や、引数が増えた関数を一覧にしてあります(C++ Interfaceは除く)。例によって正確…

16ビット画像を生成する

訳あって1画素16ビットのグレースケール画像が入り用になりました。生成できるフリーソフトは何かしらあるとは思いますが、今回はこれをOpenCVで生成しようと考えました。

OpenCV2.0でcvの関数がおかしい?

C#からOpenCV2,0をDllImportで呼び出してみたところ、AccessViolationExceptionが発生しました。 static class Program { [DllImport("libcxcore200")] extern static CvSize cvGetSize(IntPtr arr); [DllImport("libcxcore200")] extern static IntPtr cvCr…

OpenCV2.0.0をビルドする

早速Visual Studioの環境設定をするか・・・と思ったのも束の間、libディレクトリにあるライブラリファイルがこんなことになっていました。.a なのでUnixのスタティックライブラリでしょうか。ということはWindowsでは使えないので、自分でOpenCVをコンパイ…

OpenCV2.0.0リリース

延びに延びていましたがようやく出ました。http://sourceforge.net/projects/opencvlibrary/やはりバージョン番号は1.2ではなく2のようです。 ぼちぼちOpenCvSharpも2.0.0対応に向けてがんばりますか・・・・

cvRedirectError復活!

OpenCV 2.0 betaにてcvRedirectErrorが使えなくなっていた件ですが、revision2170〜2171にて修正された模様です。いやーよかった。

OpenCV2.0 betaのPythonバインディングを試す

OpenCVにはPythonから扱うためのラッパーが標準で添付されています。SWIGで機械的に作られている感じですが、いずれにしろラッパー開発者として知っておかないわけにはいきません。

cvRedirectErrorはOpenCV2.0では使えない?

先日実装したOpenCvSharpのエラーハンドリング機能ですが、早くも暗雲が立ち込めております。

cvLoadのエラーについて

OpenCV 1.1preでは、cvLoadは使う前にあらかじめcvの関数を呼んでおかないとエラーになるようです。http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx?msg=2784187 http://www.openframeworks.cc/forum/viewtopic.php?f=10&t=1853よって、何かcvの関数、…

OpenCV 1.2(2.0?) でのcvの新しい関数 不完全一覧

OpenCVの新しいバージョンが、ベータ版ですがリリースされたようです。http://sourceforge.net/projects/opencvlibrary/しかしバージョン番号がよくわかりません。上のSourceForgeのダウンロードページでも、ボタンには2.0とありますが、ファイル名やインス…