(四)OpenCv C++版入门级教程

OpenCV 图像算术运算
1.图像加法,减法,乘法,除法

#include <opencv2/opencv.hpp>
#inclde <iostream>

int main()
{
    //1.图像加法(像素值相加,最大值为255)
	cv::Mat img1= cv::imread("dog1.jpg");
	cv::Mat img2= cv::imread("dog2.jpg");
    
    cv::Mat addimg3= cv::add(img1,img2);
    cv::imshow("add_img" ,addimg3);
    cv::waitkey(0);

   //2.图像减法(像素值相减,最小值为0)
   cv::Mat subtractimg3= cv::subtract(img1,img2);
   cv::imshow("subtract_img",subtractimg3);
   cv::waitkey(0);

   //3.图像乘法(图像的对应像素值相乘)
   cv::Mat multiplyimg3= cv::multiply(img1,img2);
   cv::imshow("multiply_img",multiplyimg3);
   cv::waitkey(0);

   //4.图像除法(图像的对应像素值相除)
   cv::Mat divideimg3= cv::Mat(img1,img2);
   cv::imshow("divide_img",divideimg3);
   cv::waitkey(0);

   cv::destroyALLWindows();
}

2.图像位运算(与,或,非,异或)

#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
	cv::Mat img1= imread("dog1");
	cv::Mat img2= imread("dog2");

    //1.按位进行与运算(用于掩码操作,图像分割)
    cv::Mat addimg= cv::bitwise_and(img1,img2);
    cv::imshow("add_img",addimg);
    cv::waitkey(0);

    //2.按位进行或运算(用于图像叠加)
    cv::Mat orimg= cv::bitwise_or(img1,img2);
    cv::imshow("or_img",orimg);
    cv::waitkey(0);

    //3.按位进行非运算(用于图像反色,单个图像)
    cv::Mat notimg= cv::bitwise_not(img1);
    cv::imshow("not_img",notimg);
    cv::waitkey(0);
    
    //4.按位进行异或运算(用于图像差异检测)
    cv::Mat xorimg= cv::bitwise_xor(img1 ,img2);
    cv::imshow("xor_img",xorimg);
    cv::waitkey(0);
    cv::destoryALLWindows();
}

3.图像混合
图像混合是将两幅图像按照一定的权重进行线性组合,生成一幅新的图像。

#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
	cv::Mat img1=cv::imread("1.jpg");
	cv::Mat img2=cv::imread("2.jpg");
	
	double alpha = 0.2 // 第一幅图像的权重
    double beta = 0.8  // 第二幅图像的权重
    double gamma = 0    //可选的标量值
	cv::Mat result ;
	//混合依据为:
	//img*alpha + img2*beta + gamma
	cv::addWeighted(img1, alpha, img2, beta, gamma,result);

    cv::imshow("addweighted_img",result);
    cv::waitkey(0);
    cv::destoryALLWindows();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值