OpenCV图像处理算法——开篇(一)

本文是关于OpenCV图像处理算法的入门系列文章,主要介绍矩阵知识在编程中的应用。作者分享了如何使用OpenCV进行图像处理,通过`addWeighted`函数展示了图像的加权处理,并强调了线性代数在图像处理中的重要性。适合前端开发(数据可视化)方向的学习者,鼓励读者复习或学习线性代数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV图像处理算法——初窥(一)

简介

本人也是新兵,一边学一边写,所以称为一篇入门笔记更恰当。但我觉得起个更能突出数学在编程中的重要性的名字也不是不可以,(绝非标题党)。这是一篇OpenCV描述基本图像处理算法的系列文章,主要涉及矩阵知识(推荐可汗学院线性代数公开课 https://www.khanacademy.org/math/linear-algebra)。不是文档的翻译,官方文档教程教程中能查到的术语示例,本文将不再赘述。
在下学习方向前端开发(数据可视化,web动画等),希望觅得同道知音一起拼搏江湖。打算一周写一篇,保证质量,初次写系列文章,难免会出错,期待能一起探讨学习 (邮箱 [email protected])。

准备

环境:OpenCV-3.2.0 + Visual Studio-2015 环境配置参考文档 http://docs.opencv.org/
配置完成后一个简单的示例来了解OpenCV中图像-矩阵关系,主要涉及Mat类,文档上有详尽介绍。

#include "stdafx.h"
#include "opencv2/imgcodecs.hpp"
#include <opencv2/highgui.hpp>
#include <iostream>

using namespace cv;

int main(void)
{
    Mat src1,src2,dst;
    src1 = imread("source.png",-1);//读入带alpha的png图片
    if (src1.empty()) { std::cout << "error load src1" << std::endl; return -1; };
    src2 = Mat(5, 5, CV_8UC4, Scalar(0, 0, 255,100));//用Mat构造函数创建一个5*5的Mat类
    dst = src1 + src2;//矩阵相加
    std::cout << "src1:" << src1 << std::endl;
    std::cout << "src2" <<src2 << std::endl;
    std::cout << "dst" <<dst << std::endl;
    imwrite("target.png", dst);//写入文件
    imshow("",dst);
    waitKey(0);
    return 0;
}

运行结果:
demo1

  1. 有不理解的函数希望能看看文档,或者直接转到声明-
  2. 分别以图像读入和Mat构造方法创建了两个mat类,存储的就是描述图像的矩阵,简单相加之后,得到新的mat类,可直接写入为图像,所以对图像的处理也就转换成对矩阵的操作

addWeighted函数

一般是混合两张图片用的,我觉得翻译为加权处理更适合,函数结构如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值