CV_EXPORTS_W void add(InputArray src1, InputArray src2, OutputArray dst,
InputArray mask = noArray(), int dtype = -1);
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :遮罩像素(可有可无)
参数5 : 输出图的深度(可有可无)
/*****************************************************************************************************************************************/
CV_EXPORTS_W void subtract(InputArray src1, InputArray src2, OutputArray dst,
InputArray mask = noArray(), int dtype = -1);
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :遮罩像素(可有可无)
参数5 : 输出图的深度(可有可无)
/*****************************************************************************************************************************************/
CV_EXPORTS_W void multiply(InputArray src1, InputArray src2,
OutputArray dst, double scale = 1, int dtype = -1);
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :缩放因子,在第一张图*第二张图的基础上再乘以缩放因子
参数5 : 输出图的深度(可有可无)
/*****************************************************************************************************************************************/
CV_EXPORTS_W void divide(InputArray src1, InputArray src2, OutputArray dst,
double scale = 1, int dtype = -1);
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :缩放因子,在第一张图*第二张图的基础上再乘以缩放因子
参数5 : 输出图的深度(可有可无)
/*****************************************************************************************************************************************/
CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2,
double beta, double gamma, OutputArray dst, int dtype = -1);
/*****************************************************************************************************************************************/
按照公式进行:dst=alpha* img1+beta* img2+gamma;
参数1 :第一张输入图
参数2 :输入图1占比 (alpha)
参数3 :第二张输入图
参数4 :输入图2占比 (beta)
参数5 :附加值(gamma)
参数6 :输出图
参数7 : 输出图的深度(可有可无)
/*****************************************************************************************************************************************/
CV_EXPORTS_W void bitwise_and(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask = noArray());
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :遮罩像素,可有可无
/*****************************************************************************************************************************************/
CV_EXPORTS_W void bitwise_or(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask = noArray());
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :遮罩像素,可有可无
/*****************************************************************************************************************************************/
CV_EXPORTS_W void bitwise_not(InputArray src, OutputArray dst,
InputArray mask = noArray());
/*****************************************************************************************************************************************/
参数1 :输入图
参数3 :输出图
参数4 :遮罩像素,可有可无
/*****************************************************************************************************************************************/
V_EXPORTS_W void bitwise_xor(InputArray src1, InputArray src2,
OutputArray dst, InputArray mask = noArray());
/*****************************************************************************************************************************************/
参数1 :第一张输入图
参数2 :第二张输入图
参数3 :输出图
参数4 :遮罩像素,可有可无
/*****************************************************************************************************************************************/
#include
#include
using namespace std;
using namespace cv;
class ImgOpreations
{
public:
//超过255,用原来的颜色进行保持
ImgOpreations():img1(imread("1.bmp")),img2(imread("2.bmp"))
{
result = Mat::zeros(img1.size(),img2.type());//初始化存储两个图片运算的结果
}
void Add(string WName="Add")
{
add(img1,img2,result);//相加
imshow(WName,result);
waitKey(0);
}
void Sub(string WName="Sub")
{
subtract(img1,img2,result);//相减
imshow(WName,result);
waitKey(0);
}
void Mul(string WName = "Mul")
{
multiply(img1,img2,result,1);//相乘
imshow(WName,result);
waitKey(0);
}
void Div(string WName = "Div")
{
divide(img1,img2,result,1);//相除
imshow(WName, result);
waitKey(0);
}
void AddWeighted(string WName="AddW")
{
addWeighted(img1,0.5,img2,0.5,0,result);//混合运算
imshow(WName,result);
waitKey(0);
}
private:
protected:
Mat img1;
Mat img2;
Mat result;
};
int main()
{
ImgOpreations* test1 = new ImgOpreations;
test1->Add();
test1->Sub();
test1->Mul();
test1->Div();
test1->AddWeighted();
delete test1;
return 0;
}
#include
#include
using namespace std;
using namespace cv;
class BitWise
{
public:
BitWise():img1(imread("1.bmp")),img2(imread("2.bmp"))
{
result = Mat::zeros(img1.size(),img2.type());
}
void And(string WName="And")//按位与
{
bitwise_and(img1,img2,result);
imshow(WName,result);
waitKey(0);
}
void Or(string WName = "Or")//按位或
{
bitwise_or(img1, img2, result);
imshow(WName, result);
waitKey(0);
}
void Not(string WName = "Not")//非运算
{
bitwise_not(img1,result);
imshow(WName+"1", result);
waitKey(0);
bitwise_not(img2, result);
imshow(WName+"2", result);
waitKey(0);
}
void Xor(string WName = "Xor")//异或运算
{
bitwise_xor(img1, img2, result);
imshow(WName, result);
waitKey(0);
}
private:
Mat img1;
Mat img2;
Mat result;
protected:
};
int main()
{
BitWise* test2 = new BitWise;
test2->And();
test2->Not();
test2->Or();
test2->Xor();
delete test2;
return 0;
}