亿加合和智能车制作

标题: 智能车图像仿真平台:我的最后一贴 [打印本页]

作者: fuqingxu    时间: 2018-10-24 23:40
标题: 智能车图像仿真平台:我的最后一贴
[attach]93693[/attach][attach]93698[/attach]先看效果: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  打开工程下图选择“无升级”
[attach]93700[/attach]

二、基于minecraft的图像虚拟平台2.1 Minecraft
建议使用版本1.12.2,建议下载方式:
n  Java版本:我的世界中文下载站(不过请支持正版~)
n  网易mc中国版(免费正版)
n  Windows应用商店版本(付费)
安装后,打开我提供的example世界。如何制作世界请自行参考其他资料。
[attach]93697[/attach]
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会出问题。[attach]93699[/attach]
2.2.2 开始
编译运行,程序检测所有windows窗体,选择其中的Minecraft窗体,如图:
[attach]93696[/attach]
file:///C:/Users/fqxma/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
2.2.3 运行
将游戏界面拖到你能看到的位置,此时程序将会实时捕获游戏界面。
[attach]93693[/attach]
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
作者: fuqingxu    时间: 2018-10-24 23:42
最后,希望大家不要偷摸clone走用,完善了功能上传到github,或者加我qq:505030475,或者联系哈工大智能车创新俱乐部也可。
作者: aytc100    时间: 2018-10-25 00:08
用麦块做人机交互界面也是挺有才的
作者: fuqingxu    时间: 2018-10-25 10:28
放沉自顶
作者: fuqingxu    时间: 2018-10-25 10:30
制作地图可以把CAD赛道工程转成图片,然后图像用mcedit覆盖在一张超平坦地图上。
作者: alexyzhov    时间: 2018-10-25 11:21
很硬核
作者: 快上车    时间: 2018-10-25 11:54
膜拜大佬
作者: cs538138    时间: 2018-10-25 16:44
mc做赛道真有才
作者: _Phantom_    时间: 2018-10-25 16:48
666666666666666
作者: jn_yxy    时间: 2018-10-25 16:55
Fork!
作者: Cheehow    时间: 2018-10-25 17:28
真大佬
作者: 李白不白    时间: 2018-10-25 19:59
666666666666666666
作者: yolem    时间: 2018-10-25 20:14
硬核玩家  点赞
作者: 来一杯烈酒    时间: 2018-10-25 20:36
厉害了
作者: fuqingxu    时间: 2018-10-26 00:05
存档放置位置
??\.minecraft\saves

示例地图:

作者: fuqingxu    时间: 2018-10-26 00:10
更新 现在可以使用 + -和 * 按键保存图像到本地C:\IMG  上传了一个示例地图
作者: 后天会下雨    时间: 2018-10-26 14:17
大佬大佬
作者: fuqingxu    时间: 2018-10-26 16:12
[attach]93712[/attach]
示例赛道地图下载 https://share.weiyun.com/5tKZ8Jg

作者: Feezhen    时间: 2018-10-26 19:47
厉害了
作者: Quixote    时间: 2018-10-26 20:01
大佬大佬
作者: じ~凝眸处    时间: 2018-10-29 08:51
有才有才
作者: fuqingxu    时间: 2018-10-29 17:09
对bmp文件的支持接口,近期更新
作者: eagle丶    时间: 2018-10-31 11:20
卡顿是因为什么东西对win10不兼容吗?
win10系统运行超级卡。
作者: fuqingxu    时间: 2018-10-31 20:06
更新了处理图片文件的子功能,更新了显示鼠标指针坐标的功能,提高了生成图像的质量
作者: fuqingxu    时间: 2018-10-31 20:09
eagle丶 发表于 2018-10-31 11:20
卡顿是因为什么东西对win10不兼容吗?
win10系统运行超级卡。

游戏需要独立显卡运行,Minecraft吃资源是无穷无尽的。
程序本身对图像有处理,也可能造成卡顿

我也是windows 10,也很卡。。。。

作者: fuqingxu    时间: 2018-11-1 23:55

作者: fuqingxu    时间: 2018-11-1 23:57
更新:2018.11.1:程序中加入了我收藏已经的东西,你能找到吗?
作者: fuqingxu    时间: 2018-11-1 23:58
更新::加入了我收藏已经的东西,希望给大家一点惊喜吧
作者: YOKE0    时间: 2018-11-3 21:10
大佬大佬
作者: fuqingxu    时间: 2018-11-7 22:54
从文件


启动程序
输入2选择从文件复现功能
选择图片所在的文件夹(程序会自动对文件名进行排序,筛选出BMP,JPG,PNG文件)
进入imageProcessOnChipAndOnVS(image_OnChip)函数处理图像
当鼠标停留在图片上时会在控制台上显示鼠标指针所在像素的位置和像素值
作者: fuqingxu    时间: 2020-3-7 13:49
在 家 调 车?
作者: 箭丶夕    时间: 2020-4-9 16:00
一个月前竟然错过了一次,顶顶顶




欢迎光临 亿加合和智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2