C++
星辰大海在梦中
这个作者很懒,什么都没留下…
展开
-
几种常见的排序算法
#include <iostream>#include <algorithm>#include "student.h"#include "SortTestHelper.h"using namespace std;template<typename T> void selectionSort(T a[], int size) { for (int i = 0; i < size; i++){ int maxIndex = i...原创 2021-04-11 22:45:23 · 127 阅读 · 0 评论 -
vscode cmd终端中文乱码
点击,vscode的文件->首选项->设置在搜素设置中,搜索Encoding将Files:Encoding中的utf-8改为gbk就行了,还没完,然后再新建文件,一定要新建文件或者工程,你就能看到编码方式自动改为了gbk的编码方式。原来的文件或者工程你运行还是会有乱码。当然不会改变以前的。...原创 2021-01-17 14:55:57 · 787 阅读 · 0 评论 -
输入为鱼眼相机图片,单应矩阵H的计算
单应H的计算如下:1.先将图片(图片中要有一张棋盘图)畸变矫正,如下:2.再将矫正图中计算角点数量和位置,最终只保存左上,左下,右上,右下四个角点的信息:3.使用这角点信息,使用函数:getPerspectiveTransform()获取H矩阵。具体代码:#include<opencv2/opencv.hpp>using namespace cv;usi...原创 2019-11-10 14:40:00 · 750 阅读 · 0 评论 -
堆排序c++
#include <iostream>#include <algorithm>using namespace std;void max_heapify(int arr[], int start, int end) { // 建立父節點指標和子節點指標 int dad = start; int son = dad * 2 + 1; w...转载 2019-05-27 21:33:43 · 270 阅读 · 0 评论 -
段错误(核心已存储)
我的是容器越界了,因此报错,好好检查了代码,发现确实读取的vector超越了边界。参考文章:https://blog.csdn.net/banzhuan133/article/details/77703181参考文章:https://www.cnblogs.com/lidabo/p/5014591.html...原创 2019-06-05 18:09:42 · 721 阅读 · 0 评论 -
opencv使用概率霍夫变换得到直线后,获取该直线上的点信息(位置,数量)
看了几篇博客,用的都是DDA算法,但是结果都不对,因为如果去最大步长的话,那么较小步长就小于1,直接导致加到x,y之后会被自动约掉小数(因为x,y为整数类型),因此对DDA算法做了以下改进。参考文章:https://www.cnblogs.com/fx-blog/p/9055101.html //获取x、y方向的变化最小的方向 int minstep; i...原创 2019-06-07 14:03:40 · 2366 阅读 · 0 评论 -
symbol lookup error: /opt/ros/kinetic/lib//libexample_pkg.so: undefined symbol:
/opt/ros/kinetic/lib/nodelet/nodelet: symbol lookup error: /opt/ros/kinetic/lib//libexample_pkg.so: undefined symbol: _ZN2cv11namedwindowERKNS_6StringEi没有加动态链接库,加上target_link_libraries(${PROJEC...原创 2019-06-19 20:09:22 · 3916 阅读 · 11 评论 -
被多次定义,第一次再次定义
CMakeFiles/laneloc.dir/src/ImageSeg.cpp.o:(.data+0x0): `laneloc::PI'被多次定义CMakeFiles/laneloc.dir/src/laneloc_nodelet.cpp.o:(.data+0x0):第一次在此定义问题根源:头文件中不能定义变量,会被重复定义解决办法使用下边链接第二种方法:在头文件中的定义...原创 2019-06-20 15:29:52 · 9606 阅读 · 0 评论 -
uvc鱼眼相机畸变矫正标定、透视图变换为IPM图(鸟瞰图/俯视图)
最近在搞,uvc鱼眼相机畸变矫正标定、透视图变换为IPM图(鸟瞰图/俯视图),可给恶心坏了,先说说两个畸变矫正的函数吧,如下:fisheye::initUndistortRectifyMap(), (注意我用的是鱼眼相机,你的如果是普通uvc相机,就用initUndistortRectifyMap()这个函数,前边没有fisheye::)和 getOptimalNewCameraMatrix()...原创 2019-06-28 17:59:41 · 6024 阅读 · 5 评论 -
鱼眼相机的标定fisheye_calibrate
直接上代码:https://github.com/LixinLu42/fisheye_calibrate 欢迎骚扰我的github哈~~~使用方法,需要使用鱼眼相机拍摄棋盘格的一组照片,尽量每个角度都要拍,拍个三四十张,保存在本地,使用本程序读取并且标定,会输出一个txt文件,相机畸变参数和内参可以去这里找。//运行环境 VS2012+opencv3.0已测试 VS2015...原创 2019-07-09 11:30:15 · 6347 阅读 · 9 评论 -
获得圆形roi掩膜
直接上代码:输入为:原图,想要的得到的圆形roi半径 Mat GetCirclemask(Mat image, int radius){ Mat mask = Mat::zeros(image.size(), CV_8UC1); ////情况3.画圆 Point center; center.x = radius; ...转载 2019-07-17 16:49:48 · 613 阅读 · 0 评论 -
RANSC拟合最优直线,c++实现
直接上代码: // 基于RANSAC算法的直线拟合 // pstData: 指向存储数据的指针 // dataCnt: 数据点个数 // lineParameterK: 直线的斜率 // lineParameterB: 直线的截距 // minCnt: 模型(直线)参数估计所需的数据点的个数 // maxIterCnt: 最大迭代次数...原创 2019-07-17 17:08:32 · 2391 阅读 · 2 评论 -
ubuntu安装fftw3
https://www.cnblogs.com/xiaojianliu/p/10105977.htmlsudo apt-get install fftw3 fftw3-dev pkg-config转载 2019-08-11 17:04:37 · 5034 阅读 · 0 评论 -
c++无限小数加法实现
昨填跟女朋友玩10以内的加减法,1分钟内算不出来罚钱,我肯定果断答应啊,天底下的钱都这么好赚了吗?然而并没有!!!没想到他给我出的是22位小数点和25位小数点的数相加,直接蒙逼了~~~,下午刚好做快手笔试,vs打开着,试试long double类型吧,然而long double最多16位小数。怎么办,为了不再让邪恶的女盆友把我的钱包变瘦,我熬着夜变出了一套能对无限位小数进行加的算法。...原创 2019-08-27 00:15:18 · 1539 阅读 · 0 评论 -
c++11 for循环中的冒号 f
for(string s:result) 以上是C++11 里面的for的新写法,表示依次取出字符串数组result中的元素原创 2019-04-15 10:46:23 · 4905 阅读 · 0 评论 -
类后面直接跟着一个函数然后还是分号结尾cv::FileStorage fSettings();
cv::FileStorage fSettings(strSettingPath, cv::FileStorage::READ);如题,这句话什么意思?为什么类后面直接就是函数,这是调用了这个函数吗?具体机制是什么样的呢?谢谢大佬们顺便再问一个cv::Mat K = cv::Mat::eye(3,3,CV_32F);这又是什么机制。 cv::FileStorage fSetting...原创 2019-02-17 11:13:40 · 752 阅读 · 0 评论 -
vs中 #include stdaxf.h问题
直接删去,不用include, 因为vs配置中已经包含。原创 2018-09-05 11:21:38 · 507 阅读 · 0 评论 -
指针和动态运算符new delete
给大家一个指针的声明、赋值和使用的例子: 1 2 3 4 5 6 7 8 9 10 11 12 #include<iostream> using namespace std; int main() ...原创 2018-09-08 21:21:20 · 237 阅读 · 0 评论 -
g++编译时,出现test.c:(.text+0xc7):对‘cv::_InputArray::_InputArray(cv::Mat const&)’未定义的引用
运行:g++ image-classification-prediction.cc出错:error:‘output’ does not name a type atuo output =input 'output' was not decleared in this scope解决办法:运行 g++ -std=c++11 image-classi...原创 2018-09-12 09:02:06 · 2859 阅读 · 0 评论 -
opencv截取视频帧并保存为图片。
#include <stdio.h>#include <string>#include <iostream>#include <io.h>#include <fstream>#include <vector>#include <opencv2/opencv.hpp>using namespace原创 2018-09-10 18:16:07 · 2087 阅读 · 0 评论 -
“+”: 不能添加两个指针 ,且表达式必须具有整数或未区分范围的枚举类型
1、“+”: 不能添加两个指针 。2、且表达式必须具有整数或未区分范围的枚举类型。源码如下:int i=0;sprintf_s(image_name, "%s%d%s", "image", i, ".jpg");cv::imwrite("C:\\Users\\admin\\Desktop\\newimages\\" +image_name, frame);这两个错误,是...原创 2018-09-10 18:16:29 · 28887 阅读 · 2 评论 -
boost::filesystem获取目录下的所有.xml文件名,并批量更改.xml文件中的内容。
第一步,遍历文件夹并获取所有.xml文件名,并存入files列表。#include <boost/filesystem.hpp>namespace fs = boost::filesystem;int get_filenames(const std::string& dir, std::vector<std::string>& filename...原创 2018-09-18 19:07:49 · 686 阅读 · 0 评论 -
tinyxml读取.xml文件,并替换其中的label(读取.txt配置文件保存到map容器,利用key查询.xml文件中的label对应的name,并跟改成value对应的值)
欢迎交流,代码如下:利用tinyxml库,tinyxml库的用法百度找把,别忘了工程下包含tinyxml文件(在工程的main.cpp那里添加tinyxml的.cpp文件)。#include <iostream>#include <io.h>#include <boost/filesystem.hpp> #include <vector&...原创 2018-09-26 15:30:49 · 436 阅读 · 0 评论 -
读itivs项目的总结
一、Qt1.QDir:默认情况下,得到的所有文件及文件夹名字一定包括.和..这两个目录。如果我们想过滤掉这两个目录,那我们需要setFilter(Filters filters)。其中Filters filters是一组二进制的数,用于选择过滤模式。其中QDir::NoDotAndDotDot就是过滤掉.和..的意思。 需要注意的是,qt默认的filter值是QDir::Al...转载 2018-10-11 15:11:52 · 239 阅读 · 0 评论 -
c++知识点总结
1、c++中的?和:是意思。三目运算符:?与:共同组成三目条件运算符(?:) 三目条件运算符(?:)使用的形式是: x ? y:z;上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。下面的例子实现了从两个数中找出较大的数的功能。int a=3,b=4;int max=a&...原创 2018-10-11 15:14:10 · 211 阅读 · 0 评论 -
编程注意事项指南
1.没有的import(python)/include(c)删除。2.读入文件路径不应写死,要以命令行形式输入。3.每一块算法要注释,不然几天之后自己就看不懂了。python注意是utf-8格式。4.空格与tab键问题要注意。最好全空格,最安全。5.如果输入的命令行参数个数不对,用try-except检测,并给出建议。6.尽量精简代码,使时间复杂度和空间复杂度最优。7.li...原创 2018-09-27 18:50:35 · 199 阅读 · 0 评论 -
c++多线程
#include<thread>#include<iostream>#include<stdlib.h>#include<windows.h>#include<vector>using namespace std;void getMsg(){ while (1) { vector<int> ra...原创 2018-09-27 18:56:42 · 144 阅读 · 0 评论 -
VS相关问题
1.环境配置: 发现更详细的介绍:https://blog.csdn.net/u012043391/article/details/54972127 1.属性页--->调试-->环境:这里设置的是dll文件的路径。 当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目-&g...原创 2018-10-30 11:49:31 · 131 阅读 · 0 评论 -
itivslib新添加一种类型流程
1、在bin/model下的ivs_config文件中添加自己的新的类型名,并在相应的要添加算法的变电站下添加自己的类型名。2、在bin/model文件夹下放入训练好的模型,重命名,与1中ivs_config中新添加的类型名要一致。3、在config.h中添加新的类型名,并添加描述。 ...原创 2018-12-11 15:55:06 · 197 阅读 · 0 评论 -
GetListFiles()
Directory里面包括3个成员函数:(1)、GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹;(2)、GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件;(3)、GetListFilesR:R的含义,我的理解应该是recursive,即递归地遍历指定文件夹下的所有文件,遇到文件夹内的文件夹则进入文件夹继续遍历子文件夹。...原创 2018-08-21 16:45:06 · 3612 阅读 · 0 评论