阶段任务一

1、问题引入
如何实现让角色出现在背景上

2、简介
通过Mat像素访问的方法,使得两张图片重叠显示

3、知识点
Mat像素访问的方法的应用

1)、基本任务
实现两张图像的重叠显示
示例代码:

#include "iostream"
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {//  读入一张图片Mat img = imread("./img/map/map1.png");Mat carImg = imread("./img/car/uupoop1.png");//  创建一个名为 "img" 窗口printf("%d %d %d %d", img.cols, img.rows ,img.channels(), img.depth());int posX = 200;int posY = 200;for (int h = 0; h < carImg.rows; h++) {for (int w = 0; w < carImg.cols ; w++) {Vec3b & carPixel = carImg.at<Vec3b>(h, w);uchar *ptr = img.ptr<uchar>(posX + h, posY + w);ptr[0] = carPixel[0];ptr[1] = carPixel[1];ptr[2] = carPixel[2];}}namedWindow("img");//  在窗口中显示图片imshow("img", img);//  等待 6000 ms 后窗口自动关闭waitKey(0);destroyWindow("img");img.release();
}

运行结果:

2)、扩展任务
实现两张图像的半透明交叠显示

运行结果:

阶段任务二

1、问题引入
如何实现角色在背景上的抠图显示;

2、简介
通过Mat像素访问的方法,使得两张图片透明显示;

3、知识点
Mat像素访问的方法的应用
注意:像素各个颜色值存放的位置顺序

1)、基本任务
实现游戏角色的抠图显示
示例代码:

#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {Mat img = imread("./img/map/map1.png");Mat carImg = imread("./img/car/uupoop1.png");//  创建一个名为 "img" 窗口printf("%d %d %d %d", img.cols, img.rows, img.channels(), img.depth());int posX = 200;int posY = 200;for (int h = 0; h < carImg.rows; h++) {for (int w = 0; w < carImg.cols; w++) {Vec3b & carPixel = carImg.at<Vec3b>(h, w);uchar *ptr = img.ptr<uchar>(posX + h, posY + w);if ((carPixel[0] == 0) && (carPixel[1] == 255) && (carPixel[2] == 0))continue;ptr[0] = carPixel[0];ptr[1] = carPixel[1];ptr[2] = carPixel[2];}}namedWindow("img");//  在窗口中显示图片imshow("img", img);//  等待 6000 ms 后窗口自动关闭waitKey(0);destroyWindow("img");img.release();
}

运行结果:

2)、扩展任务
i、实现多角色图像的抠图显示

ii、抽象出透明贴图的函数

OpenCV小游戏-《跑跑卡丁车》项目实践-3相关推荐

  1. 小游戏推广项目,适合新手操作的网路项目

    大家可能都玩过游戏,像之前的网页游戏,到现在的手机游戏. 另外,大家在玩游戏或浏览网页,会碰到很多游戏推广的广告. 有广告,就有赚钱的门路. 不知道大家是否了解游戏推广项目? 其实做游戏推广还是蛮赚钱 ...

  2. 用html+css+js实现中国象棋小游戏开发项目

    用html+css+js中国象棋小游戏开发项目 最近刚学习完JS的相关课程,跟着老师做了两个小游戏项目,就已经抑制不住内心的小激动,想着要迫不及待的着手准备做一个网页小游戏--中国象棋 由于从小就比较 ...

  3. OpenCV小游戏-《跑跑卡丁车》项目实践-1

    基于opencv的小游戏开发 使用c++库opencv开发小游戏.以简单的图像处理和应用为载体的项目训练,对专业基础要求较低. 项目的基本完成界面如下: opencv的官方说明 OpenCV是一个基于 ...

  4. Unity3d 微信小程序(小游戏)项目实现流量主接入功能(含源码)

    前言 很早之前编写了Unity导出微信小游戏的博客,也尝试自己做了个Demo上线了,基本没更新过,不过几个月的时间,用户超过了一千,可以开通流量主了,大概率是因为上篇的帖子浏览量大了,扫码体验的人多, ...

  5. 围住神经猫C++/C简单实现网页小游戏【课程实践】

    每天一个C语言小项目,提升你的编程能力! 一.游戏说明 本游戏仿造 4399 的小游戏-围住神经猫. 游戏操作:通过鼠标点击操作,设置路障,围住神经猫,当成功围住神经猫时,游戏胜利.当神经猫逃离地图边 ...

  6. 一个跑酷小游戏的项目总结

    刚入职,项目经理要求我写一个跑酷小游戏,想看看我写代码水平 主要讲思路和问题 然后再问自己关于这个项目,想问的3个问题 思路 开始没有思路,给我看了微信比较火的猛男高跟鞋,但是人家是3d做的,我一定灵 ...

  7. 小游戏类项目 —— 扫雷

    系列文章目录 五子棋游戏 扫雷游戏实现 文章目录 系列文章目录 前言 一.创建文件 二.实现 1.游戏的基本界面 2.实现Game函数 1.初始化 2.打印扫雷游戏 3.设置地雷 5.排查地雷 1.查 ...

  8. 小游戏类项目 —— 五子棋游戏

    目录 第一步编写界面 1.构思 2.功能的实现 第二步编写游戏内容 1.游戏的框架 2.功能的实现 第三步编写电脑玩家 1.分类 2.输出顺序 总结 第一步编写界面 1.构思 我们平时玩游戏并非打开它 ...

  9. 基于CQRS的架构在答题PK小游戏中的实践案例

    1. 前言 \\ 领域驱动设计(Domain-Driven Design,下文简称 DDD)在微服务时代成为了风口话题,而在 DDD 领域,我们常常看到命令查询与职责分离(Command and Qu ...

最新文章

  1. 盘点:2020年PMCAFF最受欢迎的文章!
  2. docker中使用golang:alpine镜像制作开启goweb的dockerfile
  3. linearregression_机器学习-TensorFlow建模过程 Linear Regression线性拟合应用
  4. python怎么制作图像_python数字图像处理(5):图像的绘制
  5. 事务失败返回_什么是分布式事务以及有哪些解决方案?
  6. opencv1-安装及资料
  7. python显示代码行数_python实现的代码行数统计代码
  8. “项目运行时出错,无法启动调试。绑定句柄无效”的解决办法
  9. 端口镜像 流量过滤_在 AWS 云环境中滥用 VPC 流量镜像抓取网络流量
  10. 河北大学计算机专业排名第几,河北国家一流专业排名,河北大学和燕山大学各13个,华北电力7个...
  11. 【暴力】LeetCode 300. Longest Increasing Subsequence
  12. python plot坐标轴_修改python plot折线图的坐标轴刻度方法
  13. Python基础—文件操作
  14. 微信/qq消息-定时自动循环发送
  15. “Flash闪存”基础 及 “SD NAND Flash”产品的测试
  16. APT,EPT,ET,DPD含义与理解
  17. 本地计算机无法设置共享文件夹,win10系统下共享文件夹无法访问的解决方法
  18. 2022中国消费者洞察
  19. EXCEL表格转化为XML格式文件
  20. android数字滚动动画,数字滚动效果 RollingText

热门文章

  1. Qt样式表之 QSS 语法介绍;QLineEdit、
  2. C语言——求绝对值函数
  3. 如何彻底卸载CAD制图软件呢?
  4. echarts 结合ajax完成上下级关系图的绘制
  5. Python英文文本分词(无空格)模块wordninja的使用实例
  6. python课程设计程序代码_python 课程设计
  7. 终于等到你,Alibaba首发:大师级算法宝典,足以团灭LeetCode
  8. 5min搭建个人安全高速网盘
  9. 何为微服务、网关、服务发现/注册?
  10. 安装教程建设互刷平台销量爆款平台网站源码程序建设学习交流