- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 RoboMaster视觉教程(4)装甲板识别算法
RoboMaster视觉教程(4)装甲板识别算法概览装甲板识别是RoboMaster视觉识别中比较成熟的了,到现在有很多战队开源了他们的算法。基本上的思路都是一样的:利用装甲板灯条发光的特性将摄像头曝光值调低屏蔽环境光干扰,二值化处理图像得到只含灯条的二值图,根据装甲板灯条的几何特征来设置约束筛选灯条,灯条匹配筛选装甲板。每年都有很多战队将他们的算法开源,善于利用他人的成果可以极大地减少自...
2019-07-18 11:58:08 40045 109
原创 RoboMaster视觉教程(1)摄像头
RoboMaster视觉教程(1)摄像头摄像头的选型卷帘曝光和全局曝光摄像头曝光摄像头Gamma摄像头的选型摄像头应该是机器视觉中最重要的部分了,选择一款成像质量好稳定可靠的摄像头可以极大地减少识别算法设计的难度。主流的摄像头分为CMOS摄像头和CCD摄像头。一般而言CCD摄像头体积大造价高精度高,而CMOS摄像头由于集成度高造价远低于CCD摄像头,同时CMOS摄像头的体积功耗等参数也相应地优...
2019-06-08 21:15:48 25832 9
原创 RoboMaster视觉教程(0)绪论
背景大四就要毕业了,想着大学四年也需要总结一下。就从RoboMaster这个比赛写起吧。我是大二参加的比赛,做视觉识别部分。当时的想法很简单,因为很喜欢Linux不想焊板子调电控就参加了视觉部分(说句题外话,我是从初二开始接触的Linux但一直就是瞎折腾,不知道Linux能干嘛)。做视觉可以用妙算可以开发一些很有趣的东西,学到很多前沿的知识。大二时做视觉真的是从零开始的。虽然队里之前有研究生做...
2019-05-30 15:32:40 24926 17
原创 推荐两个go语言的websocket库
我找到了两个比较好用的库,一个是melody,另一个是GoWebsocket。它们目前都还保持着更新,都是基于gorilla/websocket库的更上层的库,其中melody是服务端的库,GoWebsocket是客户端的库。
2022-12-26 00:15:01 3132 5
原创 vscode插件开发(四)Webview(1)
vscode的webview插件的自由度很高,可以满足开发者的各种定制化的要求。本篇介绍一个基于vue3的vscode webview插件模板。
2022-11-22 22:46:18 3347 1
原创 vscode插件开发(三)命令
这一篇讲vscode插件中最基础的命令。命令可以触发vscode中的各种行为。命令无处不在,每个快捷键被按下时其实就是执行了一条命令。
2022-11-15 07:00:00 1937
原创 vscode插件开发(一)hello world
写了四个月的vscode插件,中间踩了太多的坑,有很多心得想与大家分享,接下来打算一周写一篇文章来介绍一下vscode插件开发。今天这第一篇当然就是hello world了。
2022-11-06 17:39:01 1615 2
原创 gocv在windows上静态编译
之前我写了一篇gocv结合opencv动态库的编译,现在来讲一下怎么实现opencv静态库的编译。那篇文章用的是gocv v0.29.0,在编译时存在很多问题,要手动改它的编译项,现在gocv 已经更新到了 v0.31.0,修复了这些问题,编译起来顺畅多了。......
2022-06-18 14:38:51 1639 9
原创 gin学习笔记(1)hello world
上周找到一本《Building Distributed Applications in Gin》,这本书很好,相当于是gin的手把手教程了。接下来我会把学习过程中的一些想法、重点记录下来,方便自己查阅,也方便大家参考。
2022-04-11 00:45:20 882
原创 go学习笔记(9)切片(2)容量
接着之前的文章梳理go切片中的容量和长度。容量切片中的每一个元素都存放在一块连续的内存中,每个切片都有它自己保留的一块内存,它的大小就是切片的容量。通常切片的容量会比切片的长度要大,当切片容量和切片的长度一致时,若再用 append 向切片中添加新的元素,go运行时会申请一块更大容量的切片进行扩容。并将原来切片中的元素复制到新的切片中,把新添加的元素放在其后。用新的切片代替原来的切片。原来的切片将被垃圾回收。在 Go 1.14 中当切片容量小于1024字节时,每次扩容时新切片的容量翻倍;当容量超.
2022-04-02 13:03:14 693
原创 在go中使用opencv
在go中使用opencv还是比较麻烦的,如果使用的是 mac 或 linux 还好,在windows下就比较痛苦。本文记录了作者在配置gocv时遇到的一些问题
2022-02-26 11:25:58 6259 20
原创 在 Qt 中设置 OpenGL 并画一个三角形
参考《Qt5 C++ GUI Programming CookBook - Second Edition》中的《Chapter 5, OpenGL Implementation —— Setting up OpenGL in Qt》在 Qt 中设置OpenGL新建一个 Qt Widget 应用后需要在工程文件(.pro)中的 QT += core gui 后面添加 opengl即:QT += core gui opengl之后添加库依赖:LIBS += -lopengl32 -lglu32若
2022-02-20 21:57:21 966
原创 go学习笔记(3)基本类型和声明(2)
书接上回,昨天整理了一下go的字面量,今天来梳理一下go的基本类型中的布尔和数值类型。布尔(Booleans)类型bool类型没什么好说的,它只有两个值true和false,它的零值为false。var flag bool // 如果没赋值则置为零值falsevar isBeautiful = true数值类型go有12种不同的数值类型,它们分为三类:整型、浮点、复数。go的数值类型不像c语言那样用char、short、int、long、float、double这类和操作系统位数相关的数值类.
2022-02-13 15:59:45 697 2
原创 go学习笔记(2)基本类型和声明(1)
这一节讲 go 的基本类型和声明,go 的基本类型大体上和其他的语言相差不多,但go语言的基本类型也有自己的一些特点。
2022-02-12 23:05:51 502
原创 go学习笔记(1)环境安装及hello world
虽然用go写了不少代码了,但还没有很系统的学习梳理。总是用到什么功能了去网上搜搜。接下来我想每天花一点时间系统地学习go语言,把自己学习和使用的一些心得想法记录下来,加深对go的理解。
2022-02-11 22:49:58 501
原创 用Nextcloud搭建个人网盘
我心目中完美的网盘应该是这样的:大容量不限速、费用低廉、安全可靠、使用场景无限制。 能够同时满足以上几条的都是一些洋品牌,如Dropbox、Google Drive、Microsoft OneDrive、MEGA等,由于美国对中国科技的打压封锁。这几个网盘都不太容易正常使用。而国产网盘又不太好用,因此想要有一个良好的网盘体验,就需要自己动手了。今天这篇主要讲如何安装Nextcloud在局域网内搭建个人网盘。之后的几篇将介绍Nextcloud的一些配置问题。Nextcloud是一款开源网盘程序,它的官网地
2021-07-18 13:37:54 1511
原创 Triangle库在windows下崩溃的解决方法
使用 libigl 库,在linux下一切正常,而到了windows下编译运行后,发现每次运行到 Triangle 库部分的代码时就会出现内存错误崩溃,经过查找资料,发现是 Triangle 库的问题。在windows下的vc中 long 是 32 位的 而在 Triangle 库中作者认为 long 是64 位的,解决方法是把 Triangle 库源代码中所有用到 long 的地方用 long long 替换。重新编译后运行不再出错。参考链接:https://stackoverflow.com/qu
2020-05-09 21:37:57 1006 1
原创 windows 下编译 Ipopt 3.12
Ipopt这个库在linux下编译是很容易的,但是在windows下想用它就很麻烦了。官方只提供了较旧版本的Ipopt的编译版本,只能用在较旧版本的vs上。如果想用新版本或支持新的vs则只能自行编译。而Ipopt官网的windows编译教程写的不清不楚,按照官网的教程根本无法成功编译。官网教程地址:https://coin-or.github.io/Ipopt/INSTALL.htmlIpo...
2020-05-05 16:08:44 4396 43
原创 CMake学习笔记(1)使用CMake编译单源文件程序
这是我在学习使用CMake时记录的笔记,主要参考《CMake Cookbook》这本书。用CMake编译单源文件程序,示例程序如下:#include <cstdlib>#include <iostream>#include <string>std::string say_hello() { return std::string("Hello, CMa...
2020-03-30 16:30:50 787
原创 Ubuntu下Intel集显无法使用OpenGL 3.0以上版本的问题解决方法
把系统从 Ubuntu 16.04 换到了最新 Ubuntu 19.10 后在编写 OpenGL 程序后发生了闪退,但是把程序放在 16.04 上跑就跑得好好的。找 BUG 时发现可能是没有获取到正确的版本号,使得程序认为找不到相应的 OpenGL 版本。百思不得其解,不应该啊,换了新系统程序就不能用了?在两个系统间来回切换对比后发现了问题的原因。原来是我在 19.10 上没有安装独显的驱动,...
2020-03-15 00:25:15 6536 6
原创 在Qt中使用Google Test
前几天发现了一本很好的书 《The Ray Tracer Challenge》 这本书与其它讲编程或讲算法的书不一样的地方在于它全书没有提供可运行的代码,它只提供了伪代码和测试样例。它要求读者跟据书中的讲解和伪代码用读者自己熟悉的语言完成一个光追引擎,并根据书中提供的测试样例来判断有没有正确完成。书中使用的测试工具是 cucumber 一个 BDD(行为驱动开发) 工具,书中用了 cucumbe...
2020-03-07 11:08:25 3213 18
原创 把平板、手机作为电脑第二屏幕(Linux系统下)
将平板、手机作为电脑第二屏幕(Linux系统下)背景把手机、平板作为电脑第二屏幕是上个学期偶然想到的,那时我一边看网上的教程一边码代码。由于看的是视频教程,缩小了就看不清上面的字,放大了又会挡住打字区域。这时就想如果有个第二屏幕就很方便了,买个屏幕又不太方便,想到自己还有个平板天天吃灰,这不是就是现成的屏幕嘛。在网上搜了搜发现真的有解决方案,windows和mac上有很多软件可以用,但我平时...
2020-02-12 14:10:00 17035 14
翻译 Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型-第2部分
Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型-第2部分翻译自:https://www.ics.com/blog/qt-and-opengl-loading-3d-model-open-asset-import-library-assimp-part-2By John Stone Wednesday, May 18, 2016Twitt...
2019-12-15 12:28:59 1542
翻译 Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型
Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型翻译自:https://www.ics.com/blog/qt-and-opengl-loading-3d-model-open-asset-import-library-assimpBy Eric Stone Wednesday, May 21, 2014Twitter LinkedIn ...
2019-12-15 12:22:53 2115 1
翻译 OpenGL3.3鼠标拾取物体
OpenGL鼠标拾取物体本文翻译自:http://www.lighthouse3d.com/tutorials/opengl-selection-tutorial/在3D场景中拾取或选择特定项目可能对某些应用程序很有用。可以通过单击一个对象来执行选择,这需要一种确定鼠标放置在哪个对象上的方法。实现此目的的简单解决方案是使用颜色编码,以特定颜色绘制每个可拾取对象。读取鼠标所在的像素以提供颜色,...
2019-12-13 23:43:19 3859 8
翻译 Qt Creator 添加基于 JSON 的向导
Qt Creator 添加基于 JSON 的向导本文翻译自https://doc.qt.io/qtcreator/creator-project-wizards-json.htmlQt Creator 会在系统共享目录以及用户设置文件夹中查找向导模板,就像在查找向导模板位置所说的那样。基于 JSON 的向导模板所在的文件夹中包含一个名为wizard.json 的 JSON 配置文件以及所需的...
2019-12-03 17:11:52 1786
翻译 Qt Creator 添加自定义新建文件/项目模板向导
Qt Creator 添加自定义新建文件/项目模板向导翻译自:https://doc.qt.io/qtcreator/creator-project-wizards.html#tips-for-wizard-development如果你有一个正在构建构建大型应用程序或开发多个应用程序的团队,你可能希望标准化团队成员创建工程和文件的方式。你可以复制模板文件夹中的新建向导模板来创建你自己的项目向...
2019-11-20 00:04:15 3978
翻译 TinyRayTracer 用256行C++代码构建一个可理解的光线追踪器(1)
网上有大量的光线追踪相关的文章,然而问题在于几乎所有的这些文章都在展示那些成熟的非常难以理解程序。举个例子,非常著名的 明信片光线追踪器 挑战。这段简洁的程序令人印象深刻,但却很难让人理解它是怎么工作的。我想详细地教你怎样实现,而不是向你展示我能完成图像渲染。
2019-10-29 18:19:10 1681 1
原创 RoboMaster视觉教程(11)总结
RoboMaster视觉教程(11)总结这一系列教程终于写到最后一篇了,最开始设想还有两篇「程序自启以及进程守护」和「OpenCV GPU模块的使用与妙算 GPU 的 Zero Copy 」。但是「程序自启」没什么好写的, Linux 程序自启无非就是在/etc/rc.local中添加我们的视觉程序的执行路径或者在bashrc里把路径放进去达到登陆自动运行的效果。而「进程守护」之前想做但一直...
2019-10-15 14:56:25 6178 10
原创 RoboMaster视觉教程(10)目标预测
RoboMaster视觉教程(10)目标预测目标预测应该是RM视觉中最难也是最重要的部分了,预测直接决定了子弹发射后的命中率,实话实说我预测做得不好。预测之所以难做有很多原因,我觉得最困难的地方在于预测是需要上下位机配合的,也就是妙算/微型电脑与战车上的STM32需要配合起来才可以达到比较好的效果。我虽然也会写一些嵌入式上的程序对STM32也比较了解,但水平太差。17年比赛的时候基地的自瞄和电...
2019-09-27 21:33:11 7398 2
原创 RoboMaster视觉教程(9)风车能量机关识别2
RoboMaster视觉教程(9)风车能量机关识别2之前说能量机关的教程有很多了打算不写了,但是总有同学来问,想了想还是写一下吧。风车能量机关我只做了识别,因为准备分区赛的时候没有实物可以测试就一直搁置了,之后复活赛视觉的打击预测都是学弟们做的。所以如果问我预测方面的事我也只能给个大概的方向,因为毕业后就没有再做这个了。风车能量机关识别的示例代码我放在了我的GitHub上 https://g...
2019-09-14 12:38:38 13964 23
angleMeasure-master.zip
2019-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人