OpenCV图像处理算法——初窥(一)
简介
本人也是新兵,一边学一边写,所以称为一篇入门笔记更恰当。但我觉得起个更能突出数学在编程中的重要性的名字也不是不可以,(绝非标题党)。这是一篇OpenCV描述基本图像处理算法的系列文章,主要涉及矩阵知识(推荐可汗学院线性代数公开课 https://www.khanacademy.org/math/linear-algebra)。不是文档的翻译,官方文档教程教程中能查到的术语示例,本文将不再赘述。
在下学习方向前端开发(数据可视化,web动画等),希望觅得同道知音一起拼搏江湖。打算一周写一篇,保证质量,初次写系列文章,难免会出错,期待能一起探讨学习 (邮箱 dferic@foxmail.com)。
准备
环境: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;
}
运行结果:
- 有不理解的函数希望能看看文档,或者直接转到声明-
- 分别以图像读入和Mat构造方法创建了两个mat类,存储的就是描述图像的矩阵,