- 追加された行はこの色です。
- 削除された行はこの色です。
- 行列の重み付き和 へ行く。
重み付き和.ぶっちゃけ掛けて足すだけ
#contents
*void cvAddWeighted( CvMat* src1, double alpha, CvMat* src2, double beta, double gamma, CvMat* dst ); [#a7cd2939]
src1とsrc2の重み付き和をdstで返す
**引数 [#m6029060]
-src1:CvMat*型の入力行列/ベクトル
-src2:CvMat*型の入力行列/ベクトル
-dst:CvMat*型の出力行列/ベクトル
-alpha:double型のsrc1の係数
-beta:double型のsrc2の係数
-gamma:double型の足し算係数
**返り値 [#i5425aeb]
-void型なのでなし
*void addWeighted( Mat src1, double alpha, Mat src2, double beta, double gamma, OutputArray dst, int dtype ); [#m8b74253]
C++インタフェース版.C版の関数ラッパーで,実態はC++版.
**引数 [#oc7490ca]
-src1:Mat型の入力行列/ベクトル
-src2:Mat型の入力行列/ベクトル
-dst:Mat型の出力行列/ベクトル
-alpha:double型のsrc1の係数
-beta:double型のsrc2の係数
-gamma:double型の足し算係数
-dtype:int型の出力行列/ベクトルの型
*解説 [#p6864b6a]
-実際の所,以下の計算をする関数~
&mimetex(dst(I)=\alpha * src1(I) + \beta * src2(I) + gamma);
-C++版で言えば,Matクラスに掛け算オペレータ((決してBL的な意味ではなく))が付いてるので関数を使わなくても計算できる
-関数使った方が最適化されてるっぽい.
-引数のCvMat*型やMat型はIplImage*やVecクラスでも代用可能
*サンプルコード [#gc9dd794]
#geshi(c++,number){{
#include "opencv2/core/core.hpp"
void main(){
// src1の定義 [ 1 0 0; 0 1 0; 0 0 1] 単位行列
cv::Mat src1 = cv::Mat::eye( 3, 3, CV_64FC1);
// src2の定義 [ 1 1 1; 1 1 1; 1 1 1] 要素が全て1の行列
cv::Mat src2 = cv::Mat::ones( 3, 3, CV_64FC1);
// dstの定義 [ 0 0 0; 0 0 0; 0 0 0] 要素が全て0の行列
cv::Mat dst = cv::Mat::zeros(3, 3, CV_64FC1);
// 重み付き和の計算 6:4の重み付きで和をdstに代入する
cv::addWeighted(src1, 0.6, src2, 0.4, 0, dst);
// 重み付き和の計算(Cインタフェース版) 重み係数が7:3.結局内部でC++版が呼ばれる
cvAddWeighted(&(CvMat)src1, 0.3, &(CvMat)src2, 0.7, 0, &(CvMat)dst);
// 重み付き和の計算 掛け算オペレータで等価な処理が可能
dst = src1 * 0.3 + src2 * 0.7;
return;
}
}}
*実体ファイル [#r0e34a9f]
-[[:OpenCV 1.1]]以前
--cxcore/include/cxcore.h
--cxcore/src/cxarithm.cpp
-[[:OpenCV 2.3]][[:OpenCV 2.4]]
--modules/core/include/opencv2/core/core.hpp
--modules/core/src/arithm.cpp
ジャンル[[:OpenCV]][[:OpenCV 1.1]][[:OpenCV 2.3]][[:OpenCV 2.4]]準拠