OpenCV小游戏-《跑跑卡丁车》项目实践-2

阶段任务一

1、问题引入
1). 如何把不同的图形绘制在一起;
2). 如何获取图像像素的RGB值;
3). 如何修改图像像素的RGB值;

2、简介
掌握Mat像素访问的方法;

3、知识点
图像像素在内存中的存放结构
像素存储结构
Mat像素访问的方法
方法一 at(i,j)访问

Vec3b & pixel = img.at<Vec3b>(h, w);
pixel[0] = 255;
pixel[1] = 0;
pixel[2] = 0;

方法二 ptr(i) [j]访问

uchar *ptr = img.ptr<uchar>(h, w);
ptr[0] = ptr[0] / 2;
ptr[1] = ptr[1] / 2;
ptr[2] = ptr[2] / 2;

阶段任务二

基本任务

  1. 读取图像素的RGB值,并打印输出;
  2. 设置图像部分区域指定颜色;

示例代码:

#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {
	//  读入一张图片
	Mat img = imread("pic.jpg");
	//  创建一个名为 "img" 窗口
	namedWindow("img");
	for (int h = 0; h < 200; h++) {
		for (int w = 0; w < 200; w++) {
			Vec3b & pixel = img.at<Vec3b>(h, w);
			pixel[0] = 128;
			pixel[1] = 128;
			pixel[2] = 128;
		}
	}
	//  在窗口中显示游戏原画
	imshow("img", img);
	//  等待 6000 ms 后窗口⾃自动关闭
	waitKey(0);
}

运行结果:
结果截图
结果截图
扩展任务

  1. 修改图像矩形区域的像素的RGB值,使其颜色变深或变浅;
  2. 修改图像圆形区域的像素的RGB值,使其颜色变深或变浅;

实现截图:
结果截图
结果截图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值