Pynote

Python、機械学習、画像処理について

OpenCV

OpenCV - 配列の絶対値、平方根、べき乗、指数関数、対数関数を計算する

概要 OpenCV で行列の絶対値、平方根、べき乗、指数関数、対数関数を計算する方法について紹介する。 C++ 及び Python の両方に対応。 Python では行列は numpy array として扱われるので、OpenCV の関数でなく、numpy の関数を使っても同じ処理が行える。 …

OpenCV - connectedComponents() で連結成分のラベリング

概要 OpenCV の connectedComponents() で連結成分のラベリング (connected component labeling)を行う方法について紹介する。 概要 連結成分のラベリング 引数 返り値 構造情報付きで連結成分のラベリング 引数 サンプルコード 2値画像を読み込む。 連結成…

OpenCV - distanceTransform() で距離変換を行う

概要 OpenCV の distanceTransform() で距離変換を行う方法について紹介する。 概要 画像における距離の定義 距離変換 引数 ラベルマップを生成する。 引数 サンプルコード 参考

OpenCV - 画像を切り抜く方法について

概要 OpenCV で画像の一部を切り抜き、新しい画像を作成する方法について紹介する。 概要 解説 サンプルコード Python グレースケール形式 RGB 形式 C++

OpenCV - 画像にアフィン変換を適用する方法について

概要 OpenCV で画像にアフィン変換を適用する関数 warpAffine() について解説する。 この関数を利用することで、画像を回転、拡大縮小できる。また、応用的な使い方として、ある画像を別の画像に貼り付けることもできる。 概要 画像を回転させる。 引数 返り…

OpenCV - 画像座標系における回転、拡大縮小について

概要 画像座標系における回転、拡大縮小について解説し、OpenCV で回転行列を作成する方法を紹介する。 作成した回転行列で画像を回転させるには、以下の記事を参照されたい。pynote.hatenablog.com 概要 回転行列を作成する。 解説 サンプルコード

OpenCV - エッジの検出、微分フィルタ

概要 エッジ検出の理論及び OpenCV のコードについて 概要 試した環境 エッジ検出とは 微分 水平方向の微分フィルタ 垂直方向の微分フィルタ Prewitt フィルタ Sobel フィルタ 参考

OpenCV - モルフォロジー演算について

概要 モルフォロジー演算は主に二値画像を対象としたいくつかの非線形な演算を指す。 二値画像からノイズを削除したり、輪郭を抽出するのに役立つ。 概要 試した環境 構成要素 例 構成要素の作成 画像の端のピクセル 収縮 膨張 高度なモルフォロジー変換 演…

OpenCV - 画像の統計量を計算する

概要 画像から最小値、最大値、平均値、中央値、最頻値、分散、標準偏差といった各種統計量を計算する。 概要 試した環境 統計量 最小値 関数 コード 最大値 平均値 関数 コード 中央値 最頻値 分散 関数 コード 参考

OpenCV - calcHist() で画像のヒストグラムを作成する

概要 画像のヒストグラムとは、横軸に画素値、縦軸に各画素値の頻度をとったヒストグラムである。 概要 試した環境 calcHist() 1次元ヒストグラム 2次元ヒストグラム グレースケール画像の1次元ヒストグラムを作成する。 カラー画像の1次元ヒストグラムを作…

OpenCV - cv::Mat の各種プロパティ

概要 cv::Mat の各種プロパティについて紹介する。 概要 試した環境 プロパティの一覧 行列の形状 (行数、列数、次元数) 行列の要素数 行列のバイト数 行列の型 行列の性質 参考文献

OpenCV - cv::Mat で部分行列を作成する方法

概要 cv::Mat の部分行列を作成する方法について紹介する。 概要 試した環境 部分行列を作成する方法の一覧 cv::Mat の行及び列のインデックス データの共有 行及び列をそれぞれ範囲指定して部分行列を作成する cv::Rect で指定して部分行列を作成する 行ま…

OpenCV - cv::Mat と他のオブジェクト間の型変換について

概要 cv::Mat と他のオブジェクト間の型変換について紹介する。 概要 試した環境 変換一覧 cv::Mat std::vector cv::Mat cv::Matx cv::Mat cv::Vec cv::Mat cv::Mat cv::Point3_ 別の型に変換する 参考文献

OpenCV - cv::Mat の初期化方法について

概要 cv::Mat の初期化方法について紹介する。 概要 試した環境 初期化方法 指定した配列で初期化した行列を作成する。 関数 コード MatCommaInitializer_ で初期化する。 関数 コード 仕組み すべて同じ値で初期化した行列を作成する。 関数 コード すべて …

OpenCV - cv::Mat のコンストラクタについて

概要 OpenCV のコンストラクタについて整理する。 概要 試した環境 コンストラクタ 空の行列を作成する (2), (3) 大きさ及び型を指定して行列を作成する (4), (5) 大きさ、型及び値を指定して行列を作成する (6), (7) 大きさ、型及び値を指定して行列を作成…

ピクセルごとの論理演算

ピクセルごとの論理演算について 2つの2値化されている画像を入力として、ピクセルごとに論理演算を行うと、新たな画像を生成できる。 キーワード 画像2値化 (Image Thresholding, Binarization) 画像分割 (Image Segmentation) 手順 今回使用する入力画像を…

OpenCV - 記事一覧

About OpenCV に関する記事一覧。 一覧 インストール Windows で OpenCV を導入する方法 基本構造 cv::Rect 長方形を表すクラス cv::Size 大きさを表すクラス cv::Point 点を表すクラス 基本演算 配列の絶対値、平方根、べき乗、指数関数、対数関数を計算す…

OpenCV - cv::Rect 長方形を表すクラス

長方形を表すクラス cv::Rect について

OpenCV - cv::Size 大きさを表すクラス

大きさを表すクラス cv::Size について

OpenCV - cv::Point 点を表すクラス

点を表すクラス cv::Point について

OpenCV - カメラモデル

概要 カメラキャリブレーションで出てくるカメラモデルについて紹介する。 概要 カメラモデル カメラの内部パラメータ 焦点距離 カメラ座標と画像座標 Skew カメラの外部パラメータ 射影変換

OpenCV - 大津の手法/判別分析法

概要 大津の手法 (Otsu method) は2値化を行う際の閾値を画像に応じて自動的に決めるアルゴリズムである。 2値化を輝度値のヒストグラムを2クラス分類する問題と考えて解くので、判別分析法とも呼ばれる。 概要 アルゴリズム クラス の平均と分散 クラス の…

OpenCV - 画像2値化の閾値の決め方

概要 画像の2値化処理では閾値の値によって、得られる結果が変わってくる。 画像の注目する物体が写っている領域とそれ以外の領域をうまくわける閾値を選ぶ必要がある。 概要 手動で確認しながら決める 画像の輝度値のヒストグラムから決める pタイル法 参考…

OpenCV - 画像の2値化について

概要 2値化 (Thresholding) とは、グレースケールの画像をある閾値を基準にして2つの領域に分割する処理 (Segmentation) である。 例えば、画像から文字の領域とそれ以外の背景の領域を分割したい場合などに用いられる。 概要 キーワード threshold() thresh…