モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

C++

C++

  • PCL インストールおよびビルド (Debian9、C++)
    ポイントクラウド (点群) は空間内の点 (x,y,z) の集合です。例えば LiDAR (Light Detection and Ranging、レーザースキャナ、3D スキャナ) を利用して取得できます。メッシュで物体を表現している場合と区別します。 画像には通常の RGB カラー画像だけでなく、距離情報を濃淡として保存した距離画像があります。両方を取得できるカメラを RGB-D カメラ (深...
    すいすいすいすい8/29/2024に更新
    いいねアイコン画像0
  • OpenCV C++ データ型の基本的な使い方
    サムネイル画像-9c7e8c0f9a
    OpenCV (C++) の基本的なデータ型について記載します。固定長の配列と、動的にメモリ領域を確保する可変長の配列があります。 固定長配列 点クラス 点クラスは、メンバ変数に .x,y,z でアクセスできる、固定長配列の一つです。 #include <opencv2/opencv.hpp> #include <iostream> int main() { cv:...
  • 輪郭に関連した画像処理 (OpenCV3 C++)
    サムネイル画像-2798a45608
    cv::Canny などで検出したエッジをもとに cv::findContours で輪郭を計算できます。輪郭に関連した処理の例を記載します。 輪郭の描画 #include <opencv2/opencv.hpp> #in
    あきらあきら7/22/2024に更新
    いいねアイコン画像0
  • OpenCV3 C++ による基本的な画像変換
    サムネイル画像-a7fd372c07
    OpenCV3 C++ を用いて基本的な画像変換を行います。 サイズの変更 (resize) #include <opencv2/opencv.hpp> int main() { cv::Mat img = cv::imread("aaa.png", -1); if(img.empty()) { return -1;
  • 画像から特定の色の領域を抜き出す (OpenCV3 C++)
    サムネイル画像-e064b34c9c
    OpenCV3 C++ を用いて画像から特定の色の領域を取り出す方法のうち、HSV 色空間における色相を指定する方法と、バックプロジェクション (逆投影法) を利用する方法の二つを記載します。 HSV 色空間における色相を指定する方法 色を表現する空間には RGB の他に [HSV (Hue 色相、Saturation 彩度、Value 明度)](ht
  • 主成分分析による物体の方向検出 (OpenCV3、C++)
    サムネイル画像-15ea5b1dac
    主成分分析 PCA (Principal Component Analysis) を利用すると、多次元のデータから興味のある特徴のみを抽出して、より低次元のデータに変換できる可能性があります。PCA の応用例の一つとして、物体の方向検出があります。画像をグレースケールに変換して物体の輪郭を検出した後に、輪郭を形成する各点を x座標、y座標を持つ二次元データとみなします。この二次元データに対して P...
  • OpenCV3 C++ を用いた手書き数字の認識 (サポートベクタマシン)
    サムネイル画像-e9963e1c4b
    サポートベクタマシン (SVM; Support Vector Machine) は分類アルゴリズムの一つです。二つのクラスに分類されたデータをもとに分類器を構成します。その分類器を用いると、未知のデータを二つのクラスに分類できます。OpenCV3 C++ に実装されている SVM アルゴリズムを利用して、手書き数字を 0-9 のいずれかに分類してみます。 [digits.png](http://...
  • 離散フーリエ変換による周波数に応じた画像のフィルタ (OpenCV3 C++)
    サムネイル画像-539fff8a1e
    周期関数は三角関数の無限級数和で展開できることが知られており、フーリエ級数展開とよばれます。更に、連続した非周期関数にも適用できるようにフーリエ級数展開の考え方を拡張することができ、フーリエ変換とよばれます。これを離散化した離散フーリエ変換 (DFT: Discrete Fourier Transform) を用いると、デジタル信号の周波数解析を行うことができます。画像データをデジタル信号であると...
  • OpenCV3 C++ 特異値分解による画像の低ランク近似
    サムネイル画像-f269112845
    mmm x nnn 行列 AAA は、特異値分解 SVD (Singular Value Decomposition) によって次の形式に分解できます。 A=U⋅W⋅VTA = U \cdot W \cdot V^T A=U⋅W⋅VTWWW は対角行列で、対角成分は特異値とよばれます。特異値のうち大きい方からいくつかのみを残して残りを 0 にすることで、もとの行列 AAA を近似できます。Open...
  • OpenCV を C++ から扱うためのサンプルコード
    サムネイル画像-ad1e4deb05
    Python から扱う方法ではなく C++ で OpenCV を扱うためのサンプルコードを記載します。ビルドには cmake を用います。 Debian の場合は以下のコマンドで必要なライブラリがインストールされます。 sudo apt install libopencv-dev 画像を開いてウィンドウに表示 main.cpp
さらに読み込む