C++

OutputArrayOfArraysの使い方

最近、OutputArrayOfArraysの使い方がなんとなくわかってきたので、メモ。OpenCVには関数引数用の型として、InputArrayやOutputArrayがあります。 引数をこの型にすることで、cv::Matだけでなく、vectorの値も引数に取れるようになります。 使うと関数の汎用…

cv::MatからCvMatへの変換時の注意点

C++の配列クラスからCの配列構造体への変換で嵌ったのでメモ。 正常ケース OpenCVでは以下のような方法で、 cv::MatからCvMatに変換できます。 cv::Mat eye = cv::Mat::eye(3,3,CV_8UC1); CvMat eyeC = eye; std::cout << cv::Mat(&eyeC) << std::endl; 出力…

InputArrayはスマートにメモリ管理されていない

OpenCVを使っていて嵌ったのでメモ。 cv::Matはスマートなメモリ管理が実装されているので、 cv::InputArrayも同じかと思ってたら痛い目を見た。 cv::Matの例 スマートなメモリ管理のおかげで、 func1実行時にcv::Mat::eye(3,3,CV_64FC1)が期待通り出力され…

Windows+Jenkins環境にてGUIテストを動かす

QTのGUI自動テストを試してみたら、 ローカル環境で通ったテストがJenkins環境で上手く動作せずに嵌ったので、メモ。環境 OS:Windows7 Jenkins:1.567 Qt:5.3.0 QTestLibによるGUI自動テスト QTestLibを使うことで、Qtで作成したアプリケーションの自動テスト…

Visual Studio + gtest 環境でカバレッジ計測を試そうとした。(失敗談)

C++

自動テストを書いてて、カバレッジ計測したいと思うことが良くあります。 Jenkinsにカバレッジ計測を表示させてたいと常々思います。Linuxであれば、gcovを使えばいいけど、 自分はC++の開発でVisualStudioとgtestを使うことが多いので、 Windows環境でVisua…

関数オブジェクト経由でのMat型のコピー

コード書いてて嵌ったのでメモ。 cv::Mat型のデータを関数オブジェクト経由でコピーしようとしたら上手くいかなかった。 環境はVC10。 1.関数オブジェクト経由での値の代入 #include <iostream> #include <functional> void func(const int src, int& dst) {dst = src;} int main( </functional></iostream>…