- 博客(216)
- 资源 (3403)
- 收藏
- 关注
原创 有了 for 循环 为什么还要 forEach ?
再来聊聊究竟什么是迭代器,还记得之前提到的 Generator 生成器,当它被调用时就会生成一个迭代器对象(Iterator Object),它有一个 .next()方法,每次调用返回一个对象{value:value,done:Boolean},value返回的是 yield 后的返回值,当 yield 结束,done 变为 true,通过不断调用并依次的迭代访问内部的值。map:map 最慢的原因是因为 map 会返回一个新的数组,数组的创建和赋值会导致分配内存空间,因此会带来较大的性能开销。
2022-12-14 15:04:50 276
原创 opencv学习之直方图绘制
图像直方图就是用表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数,可以借助观察该直方图了解如何调整亮度分布。//查找数组和子数组的全局最小值和最大值存入maxValue中。imshow("H_S直方图", histImage);imshow("RGB直方图", histImage);imshow("一维直方图", dstImage);//分别得到要绘制的RGB三分量的高度。//计算第0和第1通道的直方图。//色调变化范围为0-179。//分别绘制三分量的直方图。//计算红色分量直方图。
2022-12-13 11:28:44 674
原创 【opencv】访问mat元素
opencv提供了cvGetND的方式访问Mat矩阵内的元素,但是在两个for循环遍历二维Mat元素时,调用函数访问需要不断的压栈和出栈,效率低,我们可以通过Mat结构体里的ptr指针进行访问,效率高。//指向每一行的起始位置。
2022-12-12 21:19:57 481
原创 opencv 获取按键cvWaitkey()
-1)//如果2ms内有按键 有返回值key。cvWaitKey()是opencv中经常用到而且很好用的一个函数。// mOpencv.cpp : 定义控制台应用程序的入口点。5.waitkey只对显示图像窗口有效,对控制台无效。//此函数等待按键,按键盘任意键就返回。4.当参数为空,则一直等待按键当前线程等待。1.当参数delay中为负,则无穷等待。3.返回值是按键值 否则返回-1。2.否则等待delay ms.Highgui_c.h中。
2022-12-12 21:19:23 719
原创 Mac上编译安装 opencv和opencv_contrib
解决方法:不使用mac上默认的python,而是用brew安装的python。下载ipp库慢 ,可以加入-DWITH_IPP=OFF,不再使用ipp。先进入到opencv目录下,依次执行以下操作。这两个项目我放在同一级目录下。* 注意要写绝对路径 *
2022-12-11 14:22:07 140
原创 在ubuntu中安装opencv
ok,这样就完成安装了,注意这里配置makefile时,那些奇奇怪怪的选项你可以安装一个cmake-gui来方便的查看和配置,后面的编译、安装和添加系统路径究竟做了啥?3.x版本变动较大,常见的教程多是2.x版本,于是你下了一个2.4.10,可接下来怎么办?现在你下载好了源码,安装好了依赖,接下来就要编译源码并将它安装到你的系统,安装之后你可以适用不同语言非常方便的调用opencv。很多安装指南就这样写了每一步的操作,于是我们很开心的复制粘贴照做,可是为什么是这样子呢?,虽然都是英文,但是。
2022-12-11 14:19:25 1242
原创 Ubuntu同时安装OpenCV2和OpenCV3
来重新制定opencv的安装路径,因为安装opencv2时已经生成了系统变量OpenCV_DIR = /usr/local/share/opencv,所以需要用set来改变这个变量的值,新的路径为与文件OpencvConfig.cmake路径相同。只要让CMake找到这个文件,这个文件就指定了Opencv的所有路径,因此设置OpenCV_DIR为包含OpenCVConfig.cmake的目录,如在我的C++工程CMakeLists.txt中添加。)后,将源码解压2、修改CMakeLists.txt文件。
2022-12-10 23:12:42 426
原创 Base64是一种基于64个可打印字符来表示二进制数据的表示方法,它Base64规定每76个字符后需要加上一个回车换行
Base64是一种基于64个可打印字符来表示二进制数据的表示方法,它Base64规定每76个字符后需要加上一个回车换行。例如:TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNp需要输出成TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNp现在给你一串加密后的字符串,请你在每76个字符后面加上一
2022-12-10 23:12:38 525
原创 OpenCV和Cuda结合编程
缺点是受限于OpenCV库的发展和更新,当需要完成一些自定义的操作时(OpenCV中没有提供相应的库),难以满足应用的需求,需要自己实现自定义操作的并行实现。swap_rb.cpp文件定义了并行操作的入口函数,即主程序完成并行操作的需要调用的函数,其主要是封装内核函数的调用函数,并添加输入参数的验证、根据输入参数选择不同内核函数等操作。该方法的优点是使用简单,利用GpuMat管理CPU与GPU之间的数据传输,而且不需要关注内核函数调用参数的设置,使用过程中,只需要关注处理的逻辑操作。只是根据自己业务需求,
2022-12-09 13:09:32 1524
原创 常用的OpenCV函数速查
90、cvScale:是cvConvertScale的一个宏,可以用来重新调整数组的内容,并且可以将参数从一种数。150、cvCopyMakeBorder:将特定的图像轻微变大,然后以各种方式自动填充图像边界;97、cvFillPoly、cvFillConvexPoly、cvPolyLine:画多边形;86、cvConvertScaleAbs:计算可选的缩放值的绝对值之后再转换数组元素的类型;27、cvAddWeighted:两个数组的元素级的加权相加运算(alpha运算);
2022-12-09 13:02:49 660
原创 在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。这困扰NowCoder很长的时间。他开始搜集那些单词的所有意义。他发现了一些规律,例如“a”能用“e”来代替, “c”能用“f”来代替
在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。这困扰NowCoder很长的时间。他开始搜集那些单词的所有意义。他发现了一些规律,例如“a”能用“e”来代替, “c”能用“f”来代替……现在他给出了字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。A B C D E F G H I J K L M N O P Q R S T U V W X Y ZE C F A J K L B D G H I V W Z Y M N O P Q R S T U Xa b c d e f g h i j
2022-12-08 11:10:09 300
原创 有两个字符串s 和t,如果即从s 中删除一些字符,将剩余的字符连接起来,即可获得t。则称t是s 的子序列。请你开发一个程序,判断t是否是s的子序列。
有两个字符串s 和t,如果即从s 中删除一些字符,将剩余的字符连接起来,即可获得t。则称t是s 的子序列。请你开发一个程序,判断t是否是s的子序列。解析:思路:定义两个字符串str1 和 str2,接收输入,然后定义两个循环变量i 和 j,令j = 0。从i = 0 ~ str1.length() - 1判断,如果str1[i] == str2[j],则 j ++, i ++;否则i ++,继续判断。直到i == str1.length()或j == str2.length(),退出循环。 如果j =
2022-12-08 11:09:06 669
原创 给定一个整数n,将数字1到按螺旋的顺序填入n×n的矩阵
给定一个整数n,将数字1到按螺旋的顺序填入n×n的矩阵例如:给出的n=3,你应该返回如下矩阵:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]示例1输入2输出[[1,2],[4,3]]解析:public int[][] generateMatrix(int n) {int[][] res = new int[n][n];if (n < 1)return res;int index = 1, rowStart = 0, rowEnd = n - 1, colStart = 0
2022-12-07 10:21:24 488
原创 给出一组区间,请合并所有重叠的区间。请保证合并后的区间按区间起点升序排列。
给出一组区间,请合并所有重叠的区间。请保证合并后的区间按区间起点升序排列。数据范围:区间组数,区间内 的值都满足要求:空间复杂度,时间复杂度进阶:空间复杂度,时间复杂度输入[[10,30],[20,60],[80,100],[150,180]]输出[[10,60],[80,100],[150,180]]解析:class Solution {public:vector merge(vector &intervals) {vector result;i
2022-12-07 10:20:38 178
原创 IP地址现在由_____组织进行分配
A:美国国会American CongressB:ICANNC:IETFD:ITU-T解析:B互联网编号分配机构(IANA,Internet Assigned Numbers Authority)负责分配和规划IP地址,以及对TCP/UDP公共服务的端口进行定义,目前,互联网上的IP地址统一由一个叫“ICANN”(Internet Corporation for Assigned Names and Numbers,互联网赋名和编号公司)的组织来管理,行使IANA的职能。其余相关基础知识还有:三大区域性ip
2022-12-06 20:33:14 263
原创 RTOS任务调度过程(上下文切换)
RTOS任务调度过程(上下文切换)解析:RTOS任务调度的机制是基于内核异常机制的,即每产生一次调度就会产生一次内核异常,那么,要了解RTOS的任务调度机制需要先明白内核的中断系统。RTOS使用其中三个特殊的异常:systick的中断、SVC异常以及PendSV异常。这三个异常是任务能跑起来的根本原因。Systick中断就是我们常说的滴答定时器中断,Freertos 调度器依靠滴答定时器中断不断地运行,假设每过1ms滴答定时器就会中断一次,调度器就会随着systick的中断1ms运行一次。除了滴答定时器中断
2022-12-06 20:32:45 1380
原创 1.1 OpenCV是什么
1.什么是OpenCV?答:OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库。2.OpenCV的网址是什么?答:http://SourceForge.net/projects/opencvlibrary3.OpenCV使用什么语言编写的?答:OpenCV采用的C/C++语言编写的。4.OpenCV可以运行的环境?答案:OpenCV可以运行的环境有:Linux/Windows/Mac,并且提供了Python、Ruby、Matlab以及其他语言的接口。
2022-12-05 10:03:34 308
原创 1 体验OpenCV
#include "highgui.h"int main(int argc,char** argv){ IplImage* img=cvLoadImage(argv[1]); cvNamedWindow("Test1",CV_WINDOW_AUTOSIZE); cvShowImage("Test1",img); cvWaitKey(0); cvReleaseImage(&img);
2022-12-05 10:02:36 253
原创 南阳OJ106-背包问题(贪心算法)
时间限制: 3000 ms | 内存限制: 65535 KB难度: 3描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1
2022-12-04 07:55:00 476
原创 贪心算法专题小结——区间相关问题
贪心算法是一种高效算法,可以快速得到问题的答案。如果一个问题可以用贪心法解决,那么它必须具备2条性质:1.具有最优子结构(即问题的最优解包含了子问题的最优解),2.具有贪心选择性质(即可以通过做出局部最优选择来构造全局最优)。下面总结一下基于贪心算法的区间问题。1.问题描述:数轴上有n个开区间(Ai,Bi),选择尽量多个区间,使得这些区间两两没有公共点。样例输入:n=5, (1,3),(2,5),(4,7),(6,9),(8,10)。样例输出:3 (选择第1,3,5个区间)2.贪心策略:按照终点从小到大给区
2022-12-04 07:54:24 514
原创 POJ1017 Packets(贪心算法训练)
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 51306 Accepted: 17391DescriptionA factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products ar
2022-12-03 19:56:52 422
原创 贪心算法与DFS:九度OJ1030
从搜索的角度考虑,如果我们先走到bg1,判断要不要,然后再走到bg2,判断要不要,然后再走到bg3,再考虑要不要,会有一个很大的问题。但是,如果我们把bgi放在bgj之后,我们发现,此时,S+……+bgj.l+bgi.j
2022-12-02 22:43:03 429
原创 贪心算法 Problem M 1012 已知幂和结果求底数
感想:比较简单的一道水题,但是要注意看清题干,是求底数还是求幂。还要看清p的取值范围,从而确定定义时的类型。//利用pow(),方便、简单。解题思路形成过程:利用pow()函数,从1到1000000000循环,找出k值。简单题意:给出n值和p值,求数值k,使得k的n次方等于p。//int范围不够!
2022-12-02 22:42:03 596
原创 NYOJ 1170 最大的数(贪心算法)
思路:只有1的时候是特殊情况其他数的时候让其相乘才能得到最大值,所以我们只需要将1好好地排好就行了,两个数相乘的时候两个数越接近其相乘的结果越大,所以在处理1的时候我们要将其加到较小的那个数上,但是2例外。else if(a[i-1]==0)//如果i-1是0的话我们就不能拿i-1与i+1进行计较了,此时我们应该拿i-2与i+1进行比较。else if(a[i+1]>=a[i-1])//如果i-1不等于0的话将较小的数加一。if(a[i-1]==2)//当i是1,i-1是2的时候又是一个特殊情况。
2022-12-01 08:18:39 183
原创 贪心算法-分饼干问题
题目要求用给定的饼干分发给不同的小朋友,这些小朋友的需求量是不一样的,饼干的大小也是有大有小,大的饼干能分配给胃口比较小的孩子,反之胃口大的孩子只能用更大的饼干才能满足,那么如何分配才能使尽可能多的小朋友有饼干吃呢?3、按照饼干数组的个数进行while循环遍历,每遍历到一个饼干,就拿这个饼干去试图满足当前胃口最小的孩子,如果能满足这个孩子,则能满足的孩子个数就加一。26 * 通过while循环的方式从饼干数组的第一个数据拿出来去试图满足第一个孩子,如果满足的话,当前得到满足的。
2022-12-01 08:18:32 727
原创 最优服务次序问题(贪心算法)
因为要求平均等待时间最小,等价于总服务时间最小,不妨先将每个顾客需要的服务时间从小到大排序,然后以此顺序进行服务,所以每个顾客要等待的时间为T1=T1、T2=T1+T2、T3=T1+T2+t3......Tn=T1+T2+...+Tn。排序完之后一次选择窗口服务,例如:有10个服务两个窗口,那么让F1等待1号窗口,F2等待2号窗口,F3等待1号窗口,F4等待2号窗口,F5等待1号窗口......设有n个顾客同时等待一项服务。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间ti(ti
2022-11-30 14:10:59 2553
原创 典型的贪心算法~ (田忌赛马 )
//如果king的比tian的快马快 用tian的慢马对king的快马。给出2N组数据,分别表示田忌和齐威王的N匹马的速度,没进行一场比赛(每组数据共N场场赛),若能分出胜负,则输的一方要给赢的一方200Y¥(银元),求田忌以怎样的策略才能赚取最多的老婆本。3.1、如果田忌最慢的比齐威王最慢的快,则比之 //这是贪心的第二步。2、如果田忌最快的马比齐王最快的马慢,则用田最慢的马跟齐最快的马比 //这是贪心的第一步。
2022-11-29 12:21:45 266
原创 贪心算法——会场安排问题
现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。最近希望在日常加强一下算法的水平,所以找了一个ACM网站来强行刷水题,不过脑子笨,刷个题老半天的,果然技术有限啊,先做个最简单的会场安排问题来增强一下自信心吧。最后当然是通过了ACM的编译了,可是发现了一个很严肃的问题,我不清楚是我的实现上有问题,还是Java和C++之间有这么大的效率差距。非常的尴尬,本来想用C++实现一次的,但是自己跑的时候能跑通,放上ACM就出错了,不知道哪里出了问题。每组测试数据的第一行是一个整数n(1。
2022-11-29 10:53:31 307
原创 贪心算法一:最优装载问题
1)贪心选择性质:所求解的问题的整体最优解可以通过一系列局部最优的选择来,即贪心选择达到。贪心选择所依赖的是以前所做过的选择,而对以后所做的选择没有关系。贪心算法是通过一系列的选择来得到问题的解,它所做的选择都是当前情况下最优的选择,即贪心算法并不考虑整体最优,而考虑的是当前情况下的局部最优,即贪心选择。动态规划是通过自底向上的方式解决子问题,贪心算法是通过自顶向下的迭代方式做出贪心选择,求解问题的最优解。48 cout
2022-11-28 16:14:31 3083
原创 【贪心算法初学】删数问题
本题难度不大,但是要理解贪心算法的本质:从问题的某一个初始解出发,向给定的目标推进。推进的每一步做一个当时看似最佳的贪心选择。还要注意一点的是,每删除一个数字,就要从这个数组的第一个单元开始重新判断。每判断到一个可以删除的数,就结束判断。if(n[i] > n[i+1]) //出现递减,删除递减的首字母。去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数最小。//x统计删除数字的个数。第二步,如何删除数字。假定只删除一个数字。
2022-11-27 12:43:12 253
原创 活动安排 贪心算法实现
void GreedySelector(int n,int *s,int *f,int *A) /*贪婪算法实现活动选择*/printf("/n/n活动号i/t开始时间 结束时间/n");/*输出输入数据*/void QuickSort(int *b,int *a,int p,int r) /*快速排序*/int Partition(int *b,int *a,int p,int r) /*产生中间数*/printf("/n 序号/t开始时间 结束时间/n");
2022-11-26 15:55:36 54
原创 贪心算法之埃及分数问题
下一步再寻找N/M - 1/K+1的最大埃及分数,通分后也即寻找真分数(N*(K+1) - M)/M*(K+1)的最大埃及分数。在开始之前,需要先把(N*(K+1) - M)/M*(K+1)约分,也即寻找分子与分母的最大公约数,详见博文。1、贪心算法的思想在本问题中的体现为在每一步的分解中都寻找最大的埃及分数。假设真分数N/M的分子为N,分母为M,则有下式成立。所以,小于真分数N/M的最大埃及分数为1/K+1。步骤一和步骤二循环执行,直到分子为1。埃及分数即分子为1的分数。两边同时除以分子N后,可知。
2022-11-26 15:55:26 729
原创 贪心算法—删数问题
算法的原理应该是说从最高位开始,一次向低位搜索,一旦遇到前一位(高位)的数大于当前位,则删去前一位,直到删除k个数,如果到达末尾还没有删除k个,则说明现在这个数已经是从小到大排序了,则从最低位开始删除要求的位数。给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。printf("输入正整数:\n");printf("输入k值:\n");printf("最小值为:\n");
2022-11-25 12:51:48 629
原创 贪心算法解决活动选择问题
/分别是开始时间数组和结束时间数组。//贪心算法解决活动选择问题,假设输入的活动结束时间是递增的。//输入共有多少活动。int A[20];//保存选择的活动。}//输入各个活动开始时间。}//输入各个活动结束时间。
2022-11-25 12:51:38 60
原创 uva 11729 Commando War(贪心算法)
解题思路:利用贪心算法,将数据以J的大小排列,先发布执行命令时间长的命令。每发布完一个命令,就及时计算当前最长所需时间,如果当前最长所需时间大于之前的最长所需时间,就更新最长时间。题目大意:第一行输入数据n代表有n组数据。数据分为两部分B和J,B代表发布命令的时间,J代表执行命令的时间。要求求出完成所有任务的最短时间。
2022-11-24 07:47:09 299
2023年数维杯B题 节能列车控制智能优化策略研究(附代码)
2023-08-25
2023数维杯B题 节能列车运行控制优化策略硬核全文完整含代码
2023-08-25
2023深圳杯数学建模C题论文及代码(合集,内含两篇,均为原创)
2023-08-21
2023深圳杯数学建模C题论文及代码(硬核):基于计算几何与等间距遍历的无人机避障规划研究
2023-08-21
2023深圳杯数学建模C题论文及代码(硬核):基于几何构形和人工势场的无人机协调避障问题研究
2023-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人