智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 17505|回复: 31
打印 上一主题 下一主题

智能车图像仿真平台:我的最后一贴

  [复制链接]

5

主题

53

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
485
威望
305
贡献
78
兑换币
119
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
跳转到指定楼层
1#
发表于 2018-10-24 23:40:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先看效果:http://v.youku.com/v_show/id_XMz ... m=a2hzp.8244740.0.0



图片没复制上来,请看这里吧,地图暂未上传,太大了,可以自己学习生成
https://github.com/505030475/VisionSimulator




VisionSimulator一、工程依赖:
n  vc14工具集
n  opencv.win.native nuget包
n  打开工程下图选择“无升级”

二、基于minecraft的图像虚拟平台2.1 Minecraft
建议使用版本1.12.2,建议下载方式:
n  Java版本:我的世界中文下载站(不过请支持正版~)
n  网易mc中国版(免费正版)
n  Windows应用商店版本(付费)
安装后,打开我提供的example世界。如何制作世界请自行参考其他资料。

1.       使用独立显卡运行游戏!
2.       F1键隐藏手
3.       /gamemode 1 开启创造模式便于调整视角
4.       F3+P快捷键:是一个可以取消切出游戏换面时弹出的ESC游戏选项的功能,也就是说切出游戏不需要打开背包或者打开对话窗即可直接切出,单机玩家不会进入暂停界面。
5.       视频设置渲染距离远
6.       角视场自行调整
7.       双击空格离地
8.       空格上升
9.       shift下降。
10.    /gamerule doMobSpawning false禁止生物出现
11.    /weather rain 雪花噪点
12.    F3查看当前坐标:所处高度,摄像头指向等
2.2 VisionSimulator2.2.1 注意事项
使用Visual Studio 2017或Visual Studio 2015,为保证程序能够正确编译,请配置平台工具集为VisualStudio 2015(v140)。
file:///C:/Users/fqxma/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
否则nuget获得的opencv会出问题。
2.2.2 开始
编译运行,程序检测所有windows窗体,选择其中的Minecraft窗体,如图:
file:///C:/Users/fqxma/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
2.2.3 运行
将游戏界面拖到你能看到的位置,此时程序将会实时捕获游戏界面。
file:///C:/Users/fqxma/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
2.2.4 裁剪
如果捕获的画面包含有标题栏等不希望出现的东西,按控制台上的提示按按键调整。

2.2.5边界柔和以及二值化
使用下面的代码进行边界柔和以及二值化。

              cvtColor(src_orig,src_gray, CV_BGR2GRAY);//灰度化

              Mat src_cut = src_gray(Range(up_cut, src_gray.rows-1-down_cut), Range(left_cut, src_gray.cols-1-right_cut));//裁剪

              const int_target_width = 80;//转化为80*60的灰度图
              const int_target_hight = 60;//转化为80*60的灰度图
              int kenel_size_x = blur_parameter * src_cut.rows /_target_hight; if (kenel_size_x % 2 == 0)kenel_size_x += 1;
              int kenel_size_y = blur_parameter * src_cut.cols /_target_width; if (kenel_size_y % 2 == 0)kenel_size_y += 1;
              int kenel = (kenel_size_x > kenel_size_y) ?kenel_size_x : kenel_size_y;//取较大的当卷积核
              blur(src_cut,src_blur, Size(kenel, kenel));//模糊图像以取得顺滑的边界线
              scaleIntervalSampling(src_blur,target_img,
                     (double)_target_hight / (src_blur.rows),
                     (double)_target_width / (src_blur.cols));//转化为80*60的灰度图
              threshold(target_img,img_threshold, 0, 255, CV_THRESH_OTSU);//大津法二值化

2.2.6 图像处理接口
n  三个文件负责处理图像:
file:///C:/Users/fqxma/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg

n  测试的图像处理函数的内容
//下面几个头文件使得该文件(imageprocess)可以跨越单片机和电脑,复制粘贴后即可运行在单片机上
//请在单片机和电脑上编写不同的"environment.h"和"extVarContainer.h"
#include <stdint.h>      
#include "environment.h"       //指示了当前的环境
#include "extVarContainer.h"   //存放了单片机上一些不能转移的外部变量,例如extern float speed;访问虚拟的车速
intimageProcessOnChipAndOnVS(uint8_t (*img)[CAMERA_COLS])
{
    for (int i = 10; i < CAMERA_ROWS - 10; i++)//测试:在图像中画一条竖线
    {
         for (int j = 10; j < CAMERA_COLS - 10; j++)
         {
             if (j == 40)
             {
                  img[j] = 125;
             }
         }
    }
    return 0;
}

n  主程序中的图像处理函数接口:
         if (src_blur.rows >0 && src_blur.rows > 0) {
             imshow(outputname,src_blur);//显示采集后模糊的图像
         }
         if (img_threshold.rows> 0 && img_threshold.rows > 0) {
             imshow("转化灰度和分辨率后的图像", img_threshold);//显示…………的图像
         }
         for (int i = 0; i <img_threshold.rows; i++) {//转入八位数组中待处理
             for (int j = 0; j <img_threshold.cols; j++) {
                  image_target[j]= img_threshold.at<uint8_t>(i, j);
             }
         }
         /**********************图像处理接口***************************/
         imageProcessOnChipAndOnVS(image_target);
         /**********************图像处理接口***************************/
         for (int i = 0; i <img_result.rows; i++) {//处理完后装入Mat中,待显示
             for (int j = 0; j <img_result.cols; j++) {
                  img_result.at<uint8_t>(i,j)=image_target[j];
             }
         }
         if (img_result.rows> 0 && img_result.rows > 0) {
             imshow("处理后的图像", img_result);//显示结果
         }
三、等你开发



补充内容 (2018-10-26 00:06):
一个示例地图已上传,mc可用下载地址http://www.minecraftxz.com/mc1-12-2-jdzh/

补充内容 (2018-10-26 00:11):
更新
现在可以使用 + -和 * 按键保存图像到本地C:\IMG

上传了一个示例地图

补充内容 (2018-10-26 16:09):
制作赛道地图工具,由于是破解版的软件,只能塞在这里 https://share.weiyun.com/5uMbfCl
可以使用AUTOCAD导出图片,然后SpritecraftFull将图片转schematic,最后使用mcedit制作地图

补充内容 (2018-10-31 20:06):
更新了处理图片文件的子功能,更新了显示鼠标指针坐标的功能,提高了生成图像的质量

补充内容 (2018-11-1 23:54):
https://github.com/505030475/Vis ... master/media/e1.gif

surprise?!!

补充内容 (2018-11-2 00:07):
GITHUB更新说明文件2018.11.2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

1

查看全部评分

回复

使用道具 举报

56

主题

4914

帖子

3

精华

顶级版主

北京科技大学智能汽车队公共主页管理员

Rank: 11Rank: 11Rank: 11Rank: 11

积分
56131

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
19568
贡献
13933
兑换币
3365
注册时间
2010-7-22
在线时间
11315 小时
推荐
发表于 2018-10-25 00:08:34 | 只看该作者
用麦块做人机交互界面也是挺有才的
回复 支持 1 反对 0

使用道具 举报

5

主题

53

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
485
威望
305
贡献
78
兑换币
119
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
推荐
 楼主| 发表于 2018-10-24 23:42:42 | 只看该作者
最后,希望大家不要偷摸clone走用,完善了功能上传到github,或者加我qq:505030475,或者联系哈工大智能车创新俱乐部也可。
回复 支持 1 反对 0

使用道具 举报

5

主题

53

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
485
威望
305
贡献
78
兑换币
119
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
4#
 楼主| 发表于 2018-10-25 10:28:50 | 只看该作者
放沉自顶
回复 支持 反对

使用道具 举报

5

主题

53

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
485
威望
305
贡献
78
兑换币
119
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
5#
 楼主| 发表于 2018-10-25 10:30:27 | 只看该作者
制作地图可以把CAD赛道工程转成图片,然后图像用mcedit覆盖在一张超平坦地图上。
回复 支持 反对

使用道具 举报

6

主题

260

帖子

2

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
9895
威望
4260
贡献
2655
兑换币
1570
注册时间
2016-1-15
在线时间
1490 小时
毕业学校
哈尔滨工业大学(威海)
6#
发表于 2018-10-25 11:21:50 | 只看该作者
很硬核
回复 支持 反对

使用道具 举报

12

主题

344

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6706
威望
3495
贡献
2139
兑换币
2373
注册时间
2018-7-12
在线时间
536 小时
7#
发表于 2018-10-25 11:54:06 | 只看该作者
膜拜大佬
回复 支持 反对

使用道具 举报

3

主题

346

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7322

活跃会员奖章优秀会员奖章论坛元老奖章在线王奖章

威望
3769
贡献
2657
兑换币
2483
注册时间
2016-5-3
在线时间
448 小时
8#
发表于 2018-10-25 16:44:28 | 只看该作者
mc做赛道真有才
回复 支持 反对

使用道具 举报

0

主题

200

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3274
QQ
威望
1770
贡献
1054
兑换币
1200
注册时间
2015-10-12
在线时间
225 小时
毕业学校
渤海湾岸钣金学院
9#
发表于 2018-10-25 16:48:16 | 只看该作者
666666666666666
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
威望
552
贡献
348
兑换币
347
注册时间
2018-3-18
在线时间
69 小时
10#
发表于 2018-10-25 16:55:11 | 只看该作者
Fork!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 14:46 , Processed in 0.058118 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表