- 博客(96)
- 收藏
- 关注
原创 OpenCV 之 图像平滑
OpenCV 中主要有四个函数涉及到图像平滑,分别是盒式滤波 (box),高斯滤波 (Gaussian),中值滤波 (median),双边滤波 (bilateral)输出图像中 (x, y) 点处的像素值,等于输入图像以 (x, y) 为中心点的邻域像素 (ksize x ksize) 平均值。高斯滤波最为有用,它是根据当前像素和邻域像素之间,空间距离的不同,计算得出一个高斯核 (邻域像素的加权系数),然后,高斯核从左至右、从上到下遍历输入图像,与输入图像的像素值求卷积和,得到输出图像的各个像素值。
2022-12-20 07:30:40 1016 1
原创 opencv中矩阵运算
90、cvScale:是cvConvertScale的一个宏,可以用来重新调整数组的内容,并且可以将参数从一种数。150、cvCopyMakeBorder:将特定的图像轻微变大,然后以各种方式自动填充图像边界;97、cvFillPoly、cvFillConvexPoly、cvPolyLine:画多边形;86、cvConvertScaleAbs:计算可选的缩放值的绝对值之后再转换数组元素的类型;27、cvAddWeighted:两个数组的元素级的加权相加运算(alpha运算);
2022-12-20 07:29:56 852
原创 opencv 直方图匹配的程序
/函数 cvNormalizeHist 通过缩放来归一化直方块,使得所有块的和等于 factor.图片直方图匹配的程序,哪位大虾给解释下,用的什么原理进行的匹配?
2022-12-19 10:02:20 541
原创 给定一个数组和一个值,使用就地算法将数组中所有等于这个值的元素删除,并返回新数组的长度。元素的顺序可以更改。你不用去关心大于当前数组长度的空间里面存储的值
给定一个数组和一个值,使用就地算法将数组中所有等于这个值的元素删除,并返回新数组的长度。元素的顺序可以更改。你不用去关心大于当前数组长度的空间里面存储的值。// 输入:[1,2,3,4],1。// 输出:[4,2,3],3。
2022-12-18 15:55:56 115
原创 给定一个数组 input[] ,如果数组长度 n 为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度 n 为偶数,则将数组中最大的元素放到 output[] 数组中间两
给定一个数组 input[] ,如果数组长度 n 为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度 n 为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6,
2022-12-17 11:32:10 85
原创 给定一个有序数组,删除其中部分元素,使得剩下的每个数最多出现2次。要求删除的数的数量尽可能少。例如:给出有序数组 A =[1,1,1,2,2,3],你给出的函数应该返回length =5,
给定一个有序数组,删除其中部分元素,使得剩下的每个数最多出现2次。要求删除的数的数量尽可能少。你给出的函数应该返回length =5, A 变为[1,1,2,2,3].=A[index-2])//允许重复两次,可以修改为三次。//允许重复两次,可以修改为三次。给出有序数组 A =[1,1,1,2,2,3],
2022-12-17 11:31:07 114
原创 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有 array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从 array1[4]与 array2[2]比较开始
从两个数组的最后一个元素比较两个数组中不同元素的个数,如有 array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从 array1[4]与 array2[2]比较开始,到 array1[2] 与 array[0]比较结束。这样得出它们不同的元素个数为 0,若 array1[6]={77,21,1,3,5,7},那 么他们不同的元素为 3。其中,len1 与 len2 分别为数组 array1[]和 array2[]的长度,函数返回值为两个数组不同元素的个数。
2022-12-16 10:24:58 120
原创 给定一个升序排序的数组,将其转化为平衡二叉搜索树(BST).平衡二叉搜索树指树上每个节点 node 都满足左子树中所有节点的的值都小于 node 的值,右子树中所有节点的值都大于 node 的值,
平衡二叉搜索树指树上每个节点 node 都满足左子树中所有节点的的值都小于 node 的值,右子树中所有节点的值都大于 node 的值,并且左右子树的节点数量之差不大于1。数据范围:0≤n≤100000数组中每个值满足 ∣val∣≤5000。给定一个升序排序的数组,将其转化为平衡二叉搜索树(BST).进阶:空间复杂度 O(n) ,时间复杂度 O(n)
2022-12-16 10:24:23 73
原创 在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。
在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。例如:a = {1,3,7,9,5,9,4,3,6,1,7},输出4或5或6。
2022-12-15 08:58:40 115
原创 将一个集合拆分成两个不相交的子集,两个子集元素之和相等,如{1, 2, 3, 4, 5, 6, 7},拆分成: {2, 5, 7}, {1, 3, 4, 6} 给出一个集合,求所有符合上面要求的拆分,
将一个集合拆分成两个不相交的子集,两个子集元素之和相等,如{1, 2, 3, 4, 5, 6, 7},拆分成: {2, 5, 7}, {1, 3, 4, 6} 给出一个集合,求所有符合上面要求的拆分,效率最高分越高,函数原型为int cal_num(int n);
2022-12-15 08:58:24 275
原创 已知华氏温度转换为摄氏温度的公式为:C = 5 / 9 (F - 32), 其中 C为摄氏温度, F为华氏温度。编写程序从键盘输入华氏温度,将其转换为摄氏温度后输出,要求计算结果保留两位小数。
已知华氏温度转换为摄氏温度的公式为:C = 5 / 9 (F - 32), 其中 C为摄氏温度, F为华氏温度。编写程序从键盘输入华氏温度,将其转换为摄氏温度后输出,要求计算结果保留两位小数。printf("华氏温度为%.2lf, 摄氏温度为%7.2lf", f, c);printf("请输入华氏温度:");
2022-12-14 14:50:35 4645
原创 定义car和boat两个类,两者皆有weight属性,定义两者的一个友元函数sum(),计算两者的重量之差。
定义car和boat两个类,两者皆有weight属性,定义两者的一个友元函数sum(),计算两者的重量之差。
2022-12-14 14:49:49 668
原创 OpenCV - 简单图像融合
在OpenCV中,将两个图片矩阵进行融合变成一个图片用到的是cvAddWeighted函数。两个图象可以是任何象素类型,只要它们的类型相同。imshow("融合效果图", image);imshow("logo图", logo);imshow("原画图", image);namedWindow("logo图");namedWindow("融合效果图");namedWindow("原画图");
2022-12-13 13:24:24 182
原创 在Mac 上安装opencv和python
此时,运行/opt/local/bin/python2.7,就可以使用opencv了。当然,也可以使用一个软连接指向/opt/local/bin/python2.7。我一开始频频碰壁的原因就是没有意识到系统自带了python,而macports又自动安装了另一个版本的python,导致了版本混乱。此时,可以看到/usr/local/lib/python2.7/site-packages/路径下生成了cv2.so。上面三个路径指向的都是通过macports安装的python,而不是系统自带的python。
2022-12-12 22:00:31 1305
原创 opencv缩放图片
/创建缩放后的图像数据,参数1-图像大小,参数2-图像深度,这里从原图获取,参数3-图像通道数,这里依然从原图获取。/*图像大小变换,参数1-输入图像,参数2-输出图像,参数3-插值方法。//创建窗口,CV_WINDOW_AUTOSIZE自适应大小。//保存缩放后图片,参数1-路径,参数2-图像数据。//读取原图宽高并乘以缩放比,得到缩放后的长宽。//创建opencv长宽结构图变量。//定义缩放后窗口标题。//要保存的缩放后地址。//在指定窗口显示图像。//定义原图窗口标题。//缩放后图暂时为空。
2022-12-11 23:37:45 538
原创 opencv图像二值化
/根据传递进来的参数,进行图像二值化操作,参数1-输入图像(必须为单通道灰度图),参数2-输出边缘图像,单通道黑白图,参数3-阀值,参数4-最大值,参数5-运算方法。const char *WindowBinaryTitle = "二值化图片";//创建源图像窗口标题变量。//定义二值化图片变量。//定义二值化窗口标题。//显示二值化后的图片。//显示原图到原图窗口。//销毁窗口,释放图片。//定义灰度图像变量。//定义滑块响应函数。//创建滑块标题变量。//单通道灰度化处理。
2022-12-11 22:22:43 598
原创 Eclispe上配置opencv
然而仅仅如此并不足够,这只是配置了opencv的jar包,还需要配置dll的路径,否则无法加载。由于项目需要,本人在进行opencv开发时需要将opencv与安卓结合起来,由于JNI搞起来比较麻烦,最终决定用java进行开发,在Eclispe上进行环境配置时也遇到过一些问题,接下来再一一细说。进入lib中,找到opencv3.20下的Native library location,双击进行配置路径,路径当然就是你刚下载的opencv啦。至此,opencv的配置完成,就可以进行简单的测试啦。
2022-12-11 22:22:08 145
原创 OpenCV4Android使用OpenCV无需安装OpenCV Manager方法
使用OpenCV4Android开发一般需要根据安装使用的SDK版本来选择对应的OpenCV Manager,其实这样是很让人烦恼的一件事,那么如何才能在不安装OpenCV Manager的情况下使应用正常运行呢,下面直接进入正题。方法其实很简单,只要对onResume()方法里的内容修改下即可,具体的修改如下:
2022-12-10 23:37:37 178
原创 OpenCV 3 - 编译更强大的OpenCV(一) - 准备
CMake的配置文件取名为CMakeLists.txt,OpenCV的源代码路径下有一个看起来很复杂的CMakeLists.txt。CMake解析这个文件后可以让你直观地配置OpenCV包含哪些模块,集成哪些库(比如附加的contrib模块、Eigen、CUDA、TBB等),启用什么技术特性(AVX、AVX2、SSSE3等)等等,同时也能较为方便地添加这些组件的文件路径,之后由CMake生成一个用于编译的工程文件,比如我使用VS2015,那CMake就生成一个VS的工程文件,打开后即可编译出想要的东西。
2022-12-09 13:00:31 440
原创 初探OpenCV
查询矩阵,我们可以使用函数cvGetElemType(const CvArr* arr),cvGetDims(const CvArr*arr,int *size=NULL)和cvGetDimSize(const CvArr*,int index),第一个返回一个整型常数,表示存储在数组里的元素类型。然后,为了使指针产生正确的偏移,必须用矩阵的行数据长度(step)元素。这里通道的概念我有我的现在的理解,就是用n个通道来描述CV_mUCn的这么一种数据类型,这里m是用来表述矩阵中存储数据的每个元素的位数。
2022-12-09 12:59:38 164
原创 单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右、从右往左、从上往下或者从下往上。例如下面的迷阵中包含quot等单词。
单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右、从右往左、从上往下或者从下往上。例如下面的迷阵中包含quot等单词。rmhlzxceuqbxmichellemnnejluapvcaellehcimxdydanagbzxinairbprrvctzevbkizjgfavqwjanquotjenhnaiumxddbxnd现给出一个迷阵,请你判断某个单词是否存在其中。解析:
2022-12-08 11:34:46 605
原创 给定两个字符串S和T,返回S子序列等于T的不同子序列个数有多少个?字符串的子序列是由原来的字符串删除一些字符(也可以不删除)在不改变相对位置的情况下的剩余字符(例如,“ACE“is a subse
给定两个字符串S和T,返回S子序列等于T的不同子序列个数有多少个?字符串的子序列是由原来的字符串删除一些字符(也可以不删除)在不改变相对位置的情况下的剩余字符(例如,"ACE"is a subsequence of"ABCDE"但是"AEC"不是)例如:S="nowcccoder", T = "nowccoder"返回3解析:
2022-12-07 10:40:55 337
原创 给定一个字符串s,分割s使得s的每一个子串都是回文串返回所有的回文分割结果。(注意:返回结果的顺序需要和输入字符串中的字母顺序一致。)
给定一个字符串s,分割s使得s的每一个子串都是回文串返回所有的回文分割结果。(注意:返回结果的顺序需要和输入字符串中的字母顺序一致。)解析:class Solution {public:vector partition(string s) {vector res;vector cur;dfs(s,cur,res);return res;}bool isPalindrome(string s){return s==string(s
2022-12-07 10:40:17 409
原创 写程序找出二叉树的深度。
写程序找出二叉树的深度。解析:一个树的深度等于max(左子树深度,右子树深度)+1。可以使用递归实现。 假设节点为定义为
2022-12-06 21:02:54 420
原创 OpenCV:OpenCV图像旋转的代码
OpenCV图像旋转的代码cv::transpose( bfM, bfM )前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了。直接使用两个指针对拷贝才是王道。不知道和OpenCV比较效果如何。贴出下面的代码: C++ //图像旋转 cv::Mat Transpose(cv::Mat &inMat) { &
2022-12-05 12:15:10 367
原创 贪心算法应用-最小生成树
在一个有权连通图(网络)中,生成树的各边权值之和称为生成树的代价。在网络的所有生成树中,权值最小的那颗生成树称为最小代价生成树(Minimum Cost Spanning Tree),简称为最小生成树Minimum Spanning Tree)。讨论问题就是如何寻找一颗各边权的总和最小的生成树。Q:假设n个城市之间建立公路网,则连通n个城市只需要n-1条公路。如何在最节省经费条件下构建此公路网。对于诸如此类问题都可以使用一个具有n个顶点的无向网络来表示。由于网路的每个生成树正好是n-1条边,这样的问题
2022-12-04 08:14:22 540
原创 贪心算法——硬币找零2——python
设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。,T[i]时,可找出钱数j的最少硬币个数记为C(i,j)。设计一个动态规划算法,对1≤j≤L,计算出所有的C( n,j )。coin_count = int(amount_rem/coin_val) #计算每个面值的个数(换成零钱时)coin_combinations.append((int)(input("面值:")))money = (int)(input("需要找的零钱:"))n = (int)(input("请输入面值个数:"))
2022-12-03 20:14:23 1150 1
原创 贪心算法之钱币找零问题
假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。用贪心算法的思想,很显然,每一步尽可能用面值大的纸币即可。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。4.把子问题的局部最优解合成原来问题的一个解。
2022-12-03 20:13:58 493
原创 九度 1463 招聘会(任务调度, 贪心算法)
又到毕业季,很多大公司来学校招聘,招聘会分散在不同时间段,小明想知道自己最多能完整的参加多少个招聘会(参加一个招聘会的时候不能中断或离开)。先对招聘会按照截止时间排序, 然后按照截止时间选取具体哪场招聘会, 时间复杂度为 O(nlogn)这种招聘会还比较简单, 招聘会本身没有权值, 假如考虑权值, 题目就变成动态规划了。算法导论贪心算法章节原题, 编程之美上也有类似题目.
2022-12-02 21:48:00 480
原创 【PAT 1033】 To Fill or Not to Fill 贪心算法&模拟
时间限制10 ms内存限制32000 kB代码长度限制16000 B判题程序Standard作者6.00 12507.00 6007.00 1507.10 07.20 2007.50 4007.30 10006.85 300749.177.10 07.00 600:从S到D一路有N个加油站(油价各异),计算最省钱的加油策略。贪心策略:假设现在自己处于A站,要考虑的是A站要不要加油,加多少油的问题。
2022-12-02 21:47:24 488
原创 磁盘最优存储问题【贪心算法】
设有n 个程序{1,2,…这n 个程序的读取概率分别是p1,p2,...,pn,且pi+p2+...+pn = 1。如果将这n 个程序按 i1,i2,....,in 的次序存放,则读取程序ir 所需的时间tr=c*(Pi1*Li2+Pi2*Li2+...+Pir*Lir)。这n 个程序的平均读取 时间为t1+t2+...+tn。磁带最优存储问题要求确定这n 个程序在磁带上的一个存储次序,使平均读取时间达到 最小。编程任务: 对于给定的n个程序存放在磁带上的长度和读取概率,编程计算n个程序的最优存储方 案。
2022-12-01 09:33:58 600
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人