openCVに関するM1spark20Betaのブックマーク (20)

  • cv::Mat使用時の画素へのアクセス方法 - minus9d's diary

    OpenCVのcv::Matクラスに格納された画像データの各画素にアクセスする方法を、以下の2種類ご紹介する。 atメソッドを用いる方法 dataメソッドを用いる方法 画素にアクセスする回数が少ないのならatメソッド、全画素に順番に読み出すなど頻繁に画素にアクセスするのならdataメソッドを用いる方法が良いと思う。 atメソッドを用いる場合 画素をピンポイントで読んだり書いたりするには、atメソッドを使う。ただし、atメソッドを使うには、Matクラスが1画素あたり何バイトからなるのかを事前に知っていないといけない。 例:白黒画像の場合 1画素の濃淡は1バイト(0〜255)で表されるので、以下のようになる。 cv::Mat img = cv::imread("cat.jpg"); int intensity = img.at<unsigned char>(y, x); //X座標がx, Y座

    cv::Mat使用時の画素へのアクセス方法 - minus9d's diary
    M1spark20Beta
    M1spark20Beta 2018/06/12
    piCameeraのbgrデータを直接dataに書き出せばよいと確信を持った記事
  • Raspberry Pi3でカメラモジュールをOpenCVで使う - 電気のDIY

    電気のDIY どこかで見たものを再現 興味を持ったものなんでもつくってみる その覚え書とアイテム置き場 トップページページ一覧メンバー編集 Raspberry Pi3でカメラモジュールをOpenCVで使う 最終更新: aaajjt 2016年05月04日(水) 22:57:56履歴 新バージョンのRaspberry Pi 純正カメラモジュール V2.1が届いた。 カメラモジュールの画像や動画をOpenCVで処理してみたい! Webで情報収集をはじめる。相当なページを徘徊した。 先にまとめると 一般アプリでカメラモジュールを使うには、V4L2ドライバをロードするだけ。 V4L2 API(libv4l-dev)でカメラモジュールを制御するアプリを開発できる。 ttp://www.ics.com/blog/raspberry-pi-camera-module などを見てみると、 新しいRASPB

    Raspberry Pi3でカメラモジュールをOpenCVで使う - 電気のDIY
    M1spark20Beta
    M1spark20Beta 2018/06/07
    v4l2でpiCameraを触る方法。高速化に行き詰まったらこれで。ただし撮影に関するいろんなパラメータの設定の仕方をまだ知らない…
  • C++でフリープラットフォームな時間計測 - Qiita

    c++で処理時間等を計測する際,clock()やtimeGetTime(), GetTickCount()等を用いていたものの, clock()は精度が10msec程度(処理系依存)なため使い勝手があまり良くなく,GetTickCountは精度は良いもののwinmm.lib(windows系)で用意されている関数のためxcode等で使えない. std::chrono 一方std::choronoはプラットフォームに依存せず,使い勝手もよい(精度は1msec程度の模様). 使い方は #include <iostream> #include <chrono> int main(){ std::chrono::system_clock::time_point start, end; // 型は auto で可 start = std::chrono::system_clock::now(); /

    C++でフリープラットフォームな時間計測 - Qiita
    M1spark20Beta
    M1spark20Beta 2018/04/19
    std::chronoをつかう
  • makeするとライブラリが入っているのに /usr/lib/ld: cannot find と怒られる問題

    make中に、こんなエラーが出ることがあります。 /usr/lib/ld: cannot find -lfoo こんな風にlibfooというライブラリが見つからないと言ってきます。 そこで、ほんとに入っていないのか調べてみます。 $ ldconfig -p | grep libfoo これで、当にそのライブラリが入っていなかった場合は、インストールしてください。ただ、ライブラリが入っているのに上記のように怒られてしまうことが結構あります。 原因として、シンボリックリンクがきちんと張られていないというパターンが多いです。たとえば、libfoo.soというライブラリが2度バージョンアップして、libfoo.so.6とlibfoo.so.6.2があるとします。ふつうは互換性のため、 libfoo.so -> libfoo.so.6.2 libfoo.so.6 -> libfoo.so.6.2

    makeするとライブラリが入っているのに /usr/lib/ld: cannot find と怒られる問題
    M1spark20Beta
    M1spark20Beta 2018/04/12
    ライブラリがないとmakeで怒られた時のメモ
  • Calc eucliadian distance between two single point ? - OpenCV Q&A Forum

    M1spark20Beta
    M1spark20Beta 2018/03/29
    2点間の距離計算にはノルムが使えるよ
  • Error in findnonzero() while storing the coordinates of non zero elements in vector<Point>

    M1spark20Beta
    M1spark20Beta 2018/03/29
    findNonZeroで動作を停止するバグが生じた際に解決の糸口になったページ。1つ以上のnonZeroがないと動作を停止してしまうらしい。countNonZeroで予め0でない要素があるか確認しよう。
  • いまさら聞けないgitの使い方 - Qiita

    はじめに 表題のとおり、いまさら聞けないgitの使い方だが、正直マイナーなコマンドはヘビーユーザではない限り、必要になるたびにGoogleで検索しているのが実情ではないだろうか。このページではその備忘録として、基的な使い方+アルファのgitコマンドについてまとめる。 基操作 リモートリポジトリからクローンする 大抵のgitプロジェクトでは、githubなどから自分の環境にクローンを作成するところからはじまる。基文法は以下の通り このuriの中に入るのは、http,httpsから始まるurlやsshプロトコルで指定するもの、gitoliteなどの他のソフトウェアと連携するものなどいくつかのパターンがある。 http, httpsを使う場合 だいたい、githubからcloneする場合はこのパターン。

    いまさら聞けないgitの使い方 - Qiita
    M1spark20Beta
    M1spark20Beta 2018/03/29
    Raspberry Piでのgitの使い方参考文献その2
  • 【Git】基本コマンド - Qiita

    ローカルリポジトリの作成 初期化して、現在あるファイルを追加して、コミットすればOK ファイルがなければgit initのみでOK

    【Git】基本コマンド - Qiita
    M1spark20Beta
    M1spark20Beta 2018/03/29
    C++による画像処理ソースコードをgitで管理するにあたり、Raspberry Pi側でgitコマンドを実行する必要が生じた。このサイトはその時に非常に役に立つ。
  • CMake 簡易まとめ - Qiita

    autotools に比べてとても使いやすい。 CMakeLists.txt ビルド対象のディレクトリーに CMakeLists.txt を配置することで cmake コマンドが対象だと認識してくれるようになる。 最低限必要な設定は次になる。 cmake_minimum_required CMakeLists.txt に記載されている内容を実行するにあたって必要な CMake のバージョンを明示する add_executable 実行ファイル名と、そのビルドに必要な c / cpp ファイルの指定 ヘッダーファイルはここに指定しなくても、更新すると勝手に認識してリビルド対象にしてくれる target_link_libraries リンクするライブラリーの指定 gcc に -lfoo と指定していた場合、 foo とだけ書く ビルド対象の分割 複数のビルド対象がある場合、ひとつの CMake

    CMake 簡易まとめ - Qiita
    M1spark20Beta
    M1spark20Beta 2017/12/28
    簡単にcmakeを使う
  • ごく簡単なcmakeの使い方 - Qiita

    なんかcmakeの使い方わからんかった、という記事を最近見たのでごく簡単な部分をまとめる。 単一のソースファイルの場合

    ごく簡単なcmakeの使い方 - Qiita
    M1spark20Beta
    M1spark20Beta 2017/12/28
    簡単にcmakeを使う
  • CMake を使ったクロスプラットフォーム開発環境

    LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog こんにちは、LINELINE GAME Clinet SDK の開発をしている やまぐち です。 この記事は LINE Advent Calendar2016 の 10 日目の記事です。 弊社でも iOS / Android / Unity 向けに LINE GAME Clinet SDK を提供しています。コードは共通の C++ を使っているのですが、複数のプラットフォーム向けにビルドを行う必要があってソースファイルの管理やビルド方法がバラバラで大変ですよね。そこでクロスプラットフォーム向けのビルドシステムなどを調査してCMake を使ってクロスプラットフォームビルド環境を作ることにしました。 CMake を採用した理

    M1spark20Beta
    M1spark20Beta 2017/12/28
    openCV時のビルドあれこれ
  • std::accumulateでvectorの合計や平均値を出す(std::accumulateの第3引数について考察もあり)

    自分のメモのために書いていくので,誰かのためになったら幸せです. 主にlinux, プログラム,電子回路について書いていきます. また、ここに載せる内容を参考にする場合は自己責任でお願いします。 配列やVectorなどの合計や平均値を求めたい場合に"std::accumulate"という関数を使うと比較的簡単に求められます. これから,基的な使い方と,自分がはまったところを説明します. まず,簡単な使い方は下のコードを見てください. #include <iostream> #include <vector> #include <numeric> int main(void) { std::vector vec; for( int i = 0; i <= 10; i++){ vec.push_back( i ); } std::cout << "sum = " << std::accumu

  • 超便利!cv::formatについて - Qiita

    cv::formatとは cv::Matの中身を様々なフォーマットで出力してくれる便利関数です. デフォルトスタイル,python,numpy,csv,c言語の配列スタイルの出力フォーマットを選択できます. 実験の結果を吐き出して,エクセルでざっくりとグラフにしたい時とかに便利です. OpenCV3.1の公式ドキュメントはこちらからどうぞ. 出力フォーマットの設定は,2.0と3.0では違うので注意が必要です. 2.0での使用方法は,こちらに書いてあります. 2.0では,文字列での指定でしたが,3.0からはcore.hppにFormatterクラスがあり, そこに各フォーマットの列挙子があります. Format OpenCV2.0 OpenCV3.0

    超便利!cv::formatについて - Qiita
    M1spark20Beta
    M1spark20Beta 2017/12/28
    cv::Matのデバッグ出力に使用できる
  • 線形代数 — OpenCV-CookBook

    行列要素の四則演算を行う¶ サイズや要素の型が異なる配列の場合,要素同士の演算はできません. 例外発生時のメッセージは,OpenCV のバージョンによって異なります. #include <iostream> #include <opencv2/core/core.hpp> int main(int argc, char *argv[]) { // 3x3 の行列 cv::Mat m1 = (cv::Mat_<double>(3,3) << 1, 2, 3, 4, 5, 6, 7, 8, 9); std::cout << "m1=" << m1 << std::endl << std::endl; // 行列とスカラ cv::Mat m2 = m1+3; cv::Mat m3 = m1*3; // スケーリング cv::Mat m4 = m1/3; std::cout << "m2=" <<

    M1spark20Beta
    M1spark20Beta 2017/12/28
    cv::Matの四則演算あれこれ
  • OpenCV 3.1でラベリングを使う(1)

    今回は、OpenCV 3.1でラベリング処理を行いました。ラベリング関数はOpenCV 3.0から標準で組み込まれていたのですが、実際に使ってみたのは今回が初めてです。 OpenCV 2.4.xの時は、ラベリングをする際に、非常に苦労した(試行錯誤した)記憶があります。その時は、井村先生のLabeling.hを使わせていただいたと思います(阪大から関学に移られて、昔のリンク先が変更になっているようです・・)。この他にも輪郭処理(cvFindContours)を用いた方法がいつもお世話になるこのサイトに紹介されていますが、簡便にできる方法ではなく、内容が非常に複雑です。 OpenCV 3.0から組み込まれている「ラベリング」の関数は、connectedComponentsとconnectedComponentsWithStatsの2つです。この関数についての詳しい使い方はこのサイトに、ラベリ

    OpenCV 3.1でラベリングを使う(1)
    M1spark20Beta
    M1spark20Beta 2017/12/28
    openCV3.1~のラベリング関数 そのうちこっちに換装するかも
  • OpenCV 2.xで1次元のヒストグラム画像を生成する - minus9d's diary

    OpenCV 2.xでヒストグラム画像を生成する方法を調べました。結論から言うと、ヒストグラムを生成する関数はあるんですが、それを画像として表示する簡便な方法はないようです。いくつかのサイトを参考にして、自分でもヒストグラム画像を作成してみました。Windows 7 + OpenCV 2.4.8で動作を確認しています。 なお、OpenCVにこだわらないのであれば、PythonのmatplotlibやR言語を使うことも検討した方がよいと思います。 ヒストグラムの作成 白黒画像の輝度をもとにヒストグラムを作っていきます。まず白黒モードで画像を読み込みます。 cv::Mat img = cv::imread("..\\img\\baboon200.jpg", CV_LOAD_IMAGE_GRAYSCALE); 次に、ヒストグラムを作成する関数cv::calcHistを呼びます。引数が多くややこし

    OpenCV 2.xで1次元のヒストグラム画像を生成する - minus9d's diary
    M1spark20Beta
    M1spark20Beta 2017/12/28
    ヒストグラムを扱った2値化処理の参考にした
  • opencvでカラー画像をグレースケールに変換 - Qiita

    //カラー画像を読み込む cv::Mat color_img = imread("hoge.png"); cv::Mat gray_img; // グレースケールに変換する cvtColor(color_img, gray_img,CV_RGB2GRAY);

    opencvでカラー画像をグレースケールに変換 - Qiita
  • 知っておきたいMatのゴリ知識

    OpenCVの重要な型 Mat OpenCVでは画像をMat型として扱う。 Matの扱い方がわかれば、画像を自由に操れる。 ここでは、「知っておくと得するMat豆知識」をご紹介しよう。 なお、この投稿では輝度画像のみを対象とする。 Matの要素を取得 Mat image(Size(100, 200), CV_8U, Scalar::all(0)); uchar pixel = image.at<uchar>(100, 50); 素朴なプログラムでは各要素にアクセスすることが多くなる。 at<データ型>(y, x) だ。データ型を指定する必要があるってことと、x, yの順番が逆なことに注意だ。 どうして(x, y)じゃないのか? それは行列だから。(行、列)の順に指定するのだ。 (ちなみにメモリ上でも行ごとにまとまっている。 のちのち重要になってくる知識) このatはデバッグモードだと非常に

    M1spark20Beta
    M1spark20Beta 2017/12/28
    cv::Matあれこれ
  • OpenCV: Using OpenCV with gcc and CMake

    M1spark20Beta
    M1spark20Beta 2017/12/28
    初期セットアップ
  • OpenCV: OpenCV modules

    Introduction OpenCV Tutorials OpenCV-Python Tutorials OpenCV.js Tutorials Tutorials for contrib modules Frequently Asked Questions Bibliography Main modules: core. Core functionality imgproc. Image Processing imgcodecs. Image file reading and writing videoio. Video I/O highgui. High-level GUI video. Video Analysis calib3d. Camera Calibration and 3D Reconstruction features2d. 2D Features Framework

    M1spark20Beta
    M1spark20Beta 2017/12/28
    リファレンストップ
  • 1