OPENCV学习笔记(2)---自学OPENCV---掩膜的计算

代码

先上代码。
我自学的方式是先看代码,然后在代码中遇到不懂的再逐个查询资料,深入学习,直到学懂。大家按照符合自己的方式学习就好了,适合自己的才是最好的。共勉。

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
	Mat src, dst;
	src = imread("E:/minions.jpg");
	if (!src.data)
	{
		cout << "error" << endl;
		return -1;
	}
	namedWindow("原图", WINDOW_AUTOSIZE);
	imshow("原图", src);

	double t = getTickCount();//记录程序执行时间
	Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0,
									 -1, 5, -1, 
									 0, -1, 0);//定义掩膜
	filter2D(src, dst, src.depth(), kernel);//计算掩膜  src.depth()是src的位图深度有32/24/8等
	double timcount = (getTickCount() - t) / getTickFrequency();
	cout << "timecount is " << timcount << endl;

	namedWindow("掩膜后的结果", WINDOW_AUTOSIZE);
	imshow("掩膜后的结果", dst);
	waitKey(0);
	return 0;
}

掩膜

掩膜,是用选定的图形、图像或物体,对处理的图像(全部或局部)进行遮挡,已到达控制图像处理区域和控制图像处理过程的目的。
掩膜的主要用途:

  1. 提取感兴趣的区域;
  2. 屏蔽作用;
  3. 结构特征提取;
  4. 特殊形状图像的制作;

代码解释

之前已经解释过具体功能的代码就不进行解释了,如果想了解的话可以看下我之前的文章,毕竟咱们是在不断学习的过程中,要牢记旧知识,不断学习新知识。

//getTickCount()函数是获取当前的时间(秒数),实质是获取当前距离格林威治时间的秒数,
//后面再次使用getTickCount(),与getTickFrequency()函数进行相除,从而获得程序执行的耗时
//getTickFrequency()函数返回CPU频率,这里C和C++不一样,C的getTickFrequency返回的单位是ms,C++返回的单位是s
//所以使用C的getTickFrequency还要进行处理才可得到准确的结果

double t = getTickCount();

double timcount = (getTickCount() - t) / getTickFrequency();
//这里是定义掩膜矩阵,<char>表示矩阵内的元素类型是char类型,也可以自定义为int、float等,(3,3)表示矩阵的形状是3*3

Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0,
								 -1, 5, -1, 
								  0, -1, 0);//定义掩膜
//filter2D(输入图像,输出图像,目标图像所需要的深度,掩膜,锚点),功能是将图像做卷积
//锚点anchor,即图像的中心像素,默认(-1,-1),可以不填写,如果想要自定义的话请按照Point(-1,-1)的形式,因为锚点的类型是Point型的

filter2D(src, dst, src.depth(), kernel);//计算掩膜  src.depth()是src的位图深度有32/24/8等

各种处理后的结果图片对比:

可以看出经过掩膜处理后的图像显得更生动,更有质感了。
在这里插入图片描述这篇opencv的学习笔记就这样结束了。
我是一个初学者,如果有相关的问题大家可以评论提出一起讨论,或指出我的错误之处,大家一起学习,一起进步,谢谢啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值