本文参考自: 原文地址
继续OpenCv的图像处理
对于上一节的inRange得到两幅图像等情况,可以使用addWeighted处理。
(1).然后讲形态学滤波
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
VideoCapture capture(0); //【1】从摄像头读入视频
while (1)
{
Mat frame; //定义一个Mat变量,用于存储每一帧的图像
capture >> frame; //读取当前帧
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //自定义卷积核
morphologyEx(frame, frame, MORPH_OPEN, element);
imshow("A",frame);
waitKey(30); //延时30ms
}
return 0;
}
getStructuringElement函数会返回指定形状和尺寸的结构元素。
这个函数的第一个参数表示内核的形状,有三种形状可以选择。
矩形:MORPH_RECT;
交叉形:MORPH_CORSS;
椭圆形:MORPH_ELLIPSE;
第二和第三个参数分别是内核的尺寸以及锚点的位置。
然后就可以使用形态学滤波(morphologyEx)
表示形态学运算的类型:
MORPH_OPEN – 开运算(Opening operation)