智能车制作

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1345|回复: 29

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

  [复制链接]

5

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
469
威望
295
贡献
72
兑换币
112
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
发表于 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

查看全部评分

回复

使用道具 举报

5

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

50

主题

4642

帖子

3

精华

顶级版主

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

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

积分
50308

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

威望
16826
贡献
12180
兑换币
1481
注册时间
2010-7-22
在线时间
10653 小时
发表于 2018-10-25 00:08:34 | 显示全部楼层
用麦块做人机交互界面也是挺有才的
回复 支持 反对

使用道具 举报

5

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
469
威望
295
贡献
72
兑换币
112
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
 楼主| 发表于 2018-10-25 10:28:50 | 显示全部楼层
放沉自顶
回复 支持 反对

使用道具 举报

5

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
469
威望
295
贡献
72
兑换币
112
注册时间
2016-9-14
在线时间
51 小时
毕业学校
bilibili
 楼主| 发表于 2018-10-25 10:30:27 | 显示全部楼层
制作地图可以把CAD赛道工程转成图片,然后图像用mcedit覆盖在一张超平坦地图上。
回复 支持 反对

使用道具 举报

6

主题

254

帖子

2

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
9028
威望
3849
贡献
2385
兑换币
1294
注册时间
2016-1-15
在线时间
1397 小时
毕业学校
哈尔滨工业大学(威海)
发表于 2018-10-25 11:21:50 | 显示全部楼层
很硬核
回复 支持 反对

使用道具 举报

4

主题

116

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1759
威望
751
贡献
426
兑换币
508
注册时间
2018-7-12
在线时间
292 小时
毕业学校
XXX大学
发表于 2018-10-25 11:54:06 | 显示全部楼层
膜拜大佬
回复 支持 反对

使用道具 举报

3

主题

272

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4235

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

威望
2051
贡献
1432
兑换币
1290
注册时间
2016-5-3
在线时间
376 小时
发表于 2018-10-25 16:44:28 | 显示全部楼层
mc做赛道真有才
回复 支持 反对

使用道具 举报

0

主题

196

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3106
QQ
威望
1676
贡献
994
兑换币
1136
注册时间
2015-10-12
在线时间
218 小时
毕业学校
渤海湾岸钣金学院
发表于 2018-10-25 16:48:16 | 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

高级会员

Rank: 4

积分
521
威望
277
贡献
160
兑换币
162
注册时间
2018-3-18
在线时间
42 小时
发表于 2018-10-25 16:55:11 | 显示全部楼层
Fork!
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|联系我们|小黑屋|智能车制作 ( 京ICP备14023231号-8

GMT+8, 2018-11-15 14:10 , Processed in 0.369897 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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