用OpenCV实现键盘控制小球的移动

本文介绍如何利用OpenCV库实现一个简单的功能,即通过键盘控制小球在屏幕上移动。这个项目适合初学者,能帮助理解OpenCV中的Mat和Rect类。

用OpenCV实现键盘控制小球的移动

导师布置的第一个任务,此前对计算机视觉一窍不通

实现比较简单,只要稍微了解了opencv中诸如Mat, Rect类的就可以完成,非常适合新手熟悉用

#include <opencv.hpp>
using namespace cv; 

Mat org = imread("D:\\openCV\\ball.png", 1);				//读入彩色图片
const int cols = org.cols;
const int rows = org.rows;
Mat back = Mat::zeros(rows * 3, cols * 4, CV_8UC3);   //背景
int x = 0;
int y = 0;


void refresh() {								//重绘背景和小球
	back.setTo(Scalar(255, 255, 255));			//背景设置白色
	Rect rect(x, y, cols, rows);				//创建和小球大小相等的矩形区域,初始坐标(0,0)
	org.copyTo(back(rect));						//将小球copy到背景上,以矩形初始化
}
int main() {
	if (org.empty()) return -1;					
	int flag = 1;
	while (flag) {
		refresh();
		char key = waitKey(0);
		switch (key) {
		case 'w':
			y -= 50;							//改变小球坐标
			if (y < 0) y = 0;
			refresh();
			break;
		case 'a':
			x -= 50;
			if (x < 0) x = 0;
			refresh();
			break;
		case 's':
			y += 50;
			if (y > rows * 2) y = rows * 2;
			refresh();
			break;
		case 'd':
			x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值