用opencv对bad apple进行轮廓提取并播放

正所谓有屏幕的地方就有bad apple
既然学了opencv ,那怎么能浪费这一技能呢

下面是代码

#include "opencv2/opencv.hpp"
#include "iostream"

using namespace cv;
using namespace std;

int main()
{
	VideoCapture cap;    //创建存储视频文件或者设备的对象
	cap.open("bad apple.mp4");	//双引号中是视频名称,视频得放在当前目录

	Mat frame;//定义一个Mat 变量,用于存储每一帧的图像
	int k = -1;
	vector<vector<Point>> g_vContours;
	vector<Vec4i> g_vHierarchy;
	while (1)
	{
		cap >> frame;

		//若视频播放完成,退出循环
		if (frame.empty())
		{
			break;
		}

		//图片处理
		cvtColor(frame, frame, COLOR_BGR2GRAY);//转换成灰度图
		threshold(frame, frame, 170, 255, CV_THRESH_BINARY);//图像二值化
		//blur(frame, frame, Size(3,3));//均值滤波
		
		Canny(frame, frame, 3,9,3);//运行Canny算子检测边缘

		findContours(frame,g_vContours,g_vHierarchy,RETR_TREE,CHAIN_APPROX_SIMPLE);//寻找轮廓

		Mat dst;
		dst.create(frame.size(), frame.type());//创建于frame同类型和大小的矩阵dst
		dst = Scalar::all(255);//将dst内所有元素设置为255
		
		drawContours(dst, g_vContours,-1,Scalar(0),2);//绘制轮廓		
		
		imshow("bad apple", dst);//显示当前帧

		k = waitKey(30);//延时30ms
		if (k == 27) break;    //按下退出键:Esc

	}
	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值