Pynote

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

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

概要

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

絶対値

abs() は入力の絶対値を返す。

dst = |src|

関数
OutputArray cv::absdiff(InputArray src)
コード
cv::Mat dst = cv::abs(src);
# numpy
dst = np.abs(src)

平方根

sqrt() は入力の各要素の平方根をとった値を返す。

dst = \sqrt{src}

関数
void cv::sqrt(InputArray src, OutputArray dst)
dst = cv2.sqrt(src[, dst])
コード
cv::sqrt(src, dst);  // src は浮動小数点型の配列
# OpenCV
dst = cv2.sqrt(src)  # src は浮動小数点型の配列
# numpy
dst = np.sqrt(src)

べき乗

pow() は入力の各要素のべき乗をとった値を返す。


\begin{eqnarray}
dst =
  \begin{cases}
    src^p & (p \in \mathbb{Z}) \\
    |src|^p & (otherwise)
  \end{cases}
\end{eqnarray}

関数
void cv::pow(InputArray src, double power, OutputArray dst)
dst = cv2.pow(src, power[, dst])
コード
cv::pow(src, 2., dst);
# OpenCV
dst = cv2.pow(src, 2.)
# numpy
dst = src ** 2

指数関数

exp() は入力の各要素の指数関数をとった値を返す。

dst = e^{src}

関数
void cv::exp(InputArray src, OutputArray dst)
dst = cv2.exp(src[, dst])
コード
cv::exp(src, dst);  // src は浮動小数点型の配列
# OpenCV
dst = cv2.exp(src)  # src は浮動小数点型の配列
# numpy
dst = np.exp(src)

対数関数

log() は入力の各要素の対数関数をとった値を返す。

dst = log(src)

関数
void cv::log(InputArray src, OutputArray dst)
dst = cv2.log(src[, dst])
コード
cv::log(src, dst);  // src は浮動小数点型の配列
# OpenCV
dst = cv2.log(src)  # src は浮動小数点型の配列
# numpy
dst = np.log(src)