编程学习
文章平均质量分 85
丶Minskyli
国科大计算机硕士,方向机器学习,图像视觉,深度学习。
展开
-
剑指offer之从尾到头打印链表
时间限制:1秒 空间限制:32768K题目描述 输入一个链表,从尾到头打印链表每个节点的值。原始解法-利用堆栈的性质:先进后出 vector<int> printListFromTailToHead(ListNode* head) { vector<int>...原创 2018-04-05 13:54:24 · 206 阅读 · 0 评论 -
Leetcode-268. Missing Number
268. Missing NumberGiven an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.For example, Given nums = [0, 1, 3] return 2.Note: Your algorithm原创 2017-03-02 17:55:45 · 680 阅读 · 0 评论 -
Leetcode-283. Move Zeroes
283. Move ZeroesGiven an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements.For example, given nums = [0, 1, 0, 3, 12], after ca原创 2017-02-28 19:15:41 · 698 阅读 · 0 评论 -
Leetcode-414. Third Maximum Number
414. Third Maximum NumberGiven a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).Example原创 2017-02-28 19:14:40 · 406 阅读 · 0 评论 -
Leetcode-448. Find All Numbers Disappeared in an Array
448. Find All Numbers Disappeared in an ArrayGiven an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements of [1, n] inclusi原创 2017-02-28 19:12:37 · 810 阅读 · 0 评论 -
Leetcode-485. Max Consecutive Ones
485 Max Consecutive OnesGiven a binary array, find the maximum number of consecutive 1s in this array.Example 1: Input: [1,1,0,1,1,1] Output: 3 Explanation: The first two digits or the last three di原创 2017-02-28 19:08:57 · 411 阅读 · 0 评论 -
Leetcode-8. String to Integer (atoi)
Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.N原创 2017-09-06 10:46:19 · 236 阅读 · 0 评论 -
Leetcode-1. Two Sum
1. Two SumGiven an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not u...原创 2017-09-03 10:03:34 · 218 阅读 · 0 评论 -
Opencv学习之非线性滤波
中值滤波–medianBlur函数其基本原理是把数字图像或数字序列中的一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点,对于斑点噪声(脉冲噪声,又称图像扫描噪声)、椒盐噪声尤其适用,并且可以克服图像细节模糊,保护边缘信息。但中值滤波器耗费时间是均值滤波器的5倍以上,并且对一些细节(特别是细、尖顶等)多的图像不太适合。void medianBlur(Inpu原创 2017-06-15 16:44:36 · 487 阅读 · 0 评论 -
Leetcode-268. Missing Number
268. Missing NumberGiven an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.For example, Given nums = [0, 1, 3] return 2.Note: Your algorithm原创 2017-03-02 17:57:29 · 736 阅读 · 0 评论 -
Leetcode-118. Pascal's Triangle
118. Pascal’s TriangleGiven numRows, generate the first numRows of Pascal’s triangle.For example, given numRows = 5, Return [1] [1,1] [1,2,1] [1,3,3,1]原创 2017-03-03 15:58:44 · 799 阅读 · 0 评论 -
剑指offer之替换空格
时间限制:1秒 空间限制:32768K题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。原始解法 先计算出空格的数目,然后...原创 2018-04-03 22:19:56 · 247 阅读 · 0 评论 -
剑指offer之二维数组中的查找
时间限制:1秒 空间限制:32768K题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。原始解法–逐列进行查找运行时间:9ms 占用内存:1512k bool Find(...原创 2018-04-03 17:07:35 · 190 阅读 · 0 评论 -
剑指offer之数组中重复的数字
时间限制:1秒空间限制:32768K题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。...原创 2018-04-02 22:32:08 · 335 阅读 · 0 评论 -
Leetcode-120. Triangle
120. TriangleGiven a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2], [3,4],原创 2017-04-17 10:30:13 · 387 阅读 · 0 评论 -
Leetcode-88. Merge Sorted Array
88. Merge Sorted ArrayGiven two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note: You may assume that nums1 has enough space (size that is greater or equal to m +原创 2017-03-07 20:31:10 · 535 阅读 · 0 评论 -
Leetcode-169. Majority Element
169. Majority ElementGiven an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the maj原创 2017-03-06 12:22:32 · 466 阅读 · 0 评论 -
Leetcode-189. Rotate Array
189. Rotate ArrayRotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].Note: Try to come up as many solutions原创 2017-03-06 01:21:52 · 645 阅读 · 0 评论 -
Leetcode-217. Contains Duplicate
217. Contains DuplicateGiven an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return fal原创 2017-03-05 15:57:00 · 810 阅读 · 0 评论 -
Opencv学习之线性滤波
平滑处理也称模糊处理,常用作减少图像上的噪点,失真以及降低图像分辨率。图像滤波是指尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,消除图像中的噪声成分叫做图像的平滑化或滤波操作。平滑滤波是低频增强的空间域滤波技术,目的:模糊和去噪。方框滤波–boxFilter函数void boxFilter(InputArray, OutputArray, int ddepth,Size ksize,P原创 2017-06-15 16:00:56 · 300 阅读 · 0 评论 -
Opencv学习之离散傅立叶变换DFT
进行离散傅立叶变换主要用到dft()函数即 dft(InputArray,OutputArray,flags=0,nonzeroRows=0);其中InputArray为输入矩阵,可以为实数或者虚数。OutputArray为输出矩阵。flags为标志符,默认为0代表傅立叶变换,若换成下表标志符,代表不同的操作。nonzeroRows默认值为0,当为非零值时如C.rows表示想要处理的原创 2017-06-14 17:48:07 · 1011 阅读 · 0 评论 -
Opencv学习之角点检测
Opencv学习之角点检测角点检测在图像处理和计算机视觉领域,兴趣点(interest points),也被称作关键点(key points)、特征点(feture points)。它被大量用于解决物体识别、图像识别、图像匹配、视觉跟踪、三维重建等一系列的问题,如果能检测到足够多特殊的点,同时它们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就具有使用价值。 图像特征类型被分为以下原创 2017-06-26 01:10:04 · 2079 阅读 · 0 评论 -
Opencv学习之ORB算法
Opencv学习之ORB算法 ORB是ORiented Brief的简称,是brief算法的改进版,算法效率比SIFT高两个数量级,在计算速度上,ORB是SIFT的100倍,是SURF的10倍。 Brief描述子:Brief是Binary Robust Independent Elementary Features的缩写,主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度原创 2017-06-29 18:22:28 · 1929 阅读 · 0 评论 -
Opencv学习之SURF算法
Opencv学习之SURF算法 SURF(加速版的具有鲁棒性的特征,SpeededUp Robust Features),SURF是尺度不变特征变换算法(SIFT算法)的加速版。SURF最大的特征在于采用了harr特征以及积分图像的概念。 SURF原理: (1)构建Hessian矩阵构造高斯金字塔尺度空间 SIFT采用的是DoG图像,而SURF采用的是Hess原创 2017-06-27 14:52:36 · 27789 阅读 · 2 评论 -
Opencv学习之霍夫变换
Opencv学习之霍夫变换 在许多应用场合中需要快速准确地检测出直线或者圆,其中一种非常有效的解决问题的方法是霍夫变换,其为图像处理中从图像中识别几何形状的基本方法之一。 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累积结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果。霍夫变换运用两个坐标空间之间的变换将在原创 2017-06-22 14:51:30 · 2269 阅读 · 1 评论 -
Opencv学习之边缘检测方法
边缘检测的一般步骤:1. 滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和。2. 增强 增强边缘的基础是确定图像各店邻域强度的变化值。增强算法可以将图像灰度点邻域强原创 2017-06-17 20:22:09 · 19642 阅读 · 2 评论 -
Opencv学习之阈值化处理
阈值可以被视作最简单的图像分割方法这样的图像分割方法基于图像中物体与背景之间的灰度差异,而且此分割属于像素级的分割。固定阈值操作–threshold()函数–单通道数组double threshold(inoutArray,outputArray,double thresh,double maxval,int type) *第一个参数,输入图像,单通道,8或32位浮点类型的Mat。 *第二个参原创 2017-06-17 13:43:03 · 753 阅读 · 0 评论 -
Opencv学习之图像金字塔与图片尺寸缩放
图像金字塔事图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结果。一幅图像的金字塔事一系列以金字塔形状排列的,分辨率逐步降低且来源于同一张原始图的图像集合,其通过梯次向下采样获得,直到达到某个终止条件才停止采样。底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。 *高斯金字塔(Gaussian pyramid):用来向下采样,主要的图像金原创 2017-06-17 11:53:43 · 721 阅读 · 0 评论 -
Opencv学习之漫水填充算法
Opencv学习之漫水填充算法 基本思想是自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色,经常用来标记或者分离图像的一部分进行处理或分析。漫水填充也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或者只处理掩码指定的像素点。其中掩膜Mask用于进一步控制那些区域将被填充颜色(比如说当对同一图像进行多次填充时)。 int floodFill(inputoutputA原创 2017-06-16 17:00:17 · 7581 阅读 · 0 评论 -
Opencv学习之开运算、闭运算、形态学梯度、顶帽、黑帽
开运算:先腐蚀后膨胀,可以用来消除小物体,在纤细点处分离物体,并且在平滑较大物体的边界的同时不明显改变其面积。闭运算:先膨胀后腐蚀,,可以用来排除小型黑洞(黑色区域)。形态学梯度:膨胀图和腐蚀图之差,对二值图像进行这一操作,可以将团块(blob)的边缘突出出来,保留物体的边缘轮廓。顶帽:原图像和开运算结果图之差,常用来分离比邻近点亮一些的斑块,在一幅图像具有大幅的背景而微小物品比较有规律的情况原创 2017-06-16 14:22:33 · 1589 阅读 · 0 评论 -
Opencv学习之重映射
Opencv学习之重映射–remap函数重映射,就是把一幅图像中某个位置的像素放置到另一个图片指定位置的过程。为了完成映射过程,需要获得一些插值为非整数像素的坐标,因为源图像与目标图的像素坐标不是一一对应的。 void remap(inputArray,outputArray,map1,map2,int interpolation,int borderMode=BORDER_CONSTANT,co原创 2017-06-22 16:08:14 · 594 阅读 · 0 评论 -
Opencv学习之仿射变换、直方图均衡化
Opencv学习之仿射变换、直方图均衡化Opencv学习之仿射变换–wrapAffine函数、getRotationMatrix2D函数仿射变换,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。它保持了二维图形的“平直性”(直线经过变换之后依然是直线)和“平行性”(二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。 仿射变换有原创 2017-06-23 13:44:27 · 2333 阅读 · 0 评论 -
Opencv学习之模板匹配
Opencv学习之模板匹配 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术,模板匹配不是基于直方图的,而是通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配的一种匹配方法。实现模板匹配–matchTemplate函数用于匹配出和模板重叠的图像区域 void matchTemplate(inputArray image,inputArray templ,o原创 2017-06-25 18:17:22 · 755 阅读 · 0 评论 -
Oopencv学习之反向投影
Oopencv学习之反向投影 如果一幅图像的区域中显示的是一种结构纹理或者一个独特的物体,那么这个区域的直方图可以看作一个概率函数,其表现形式是某个像素属于该纹理或物体的概率。 而反向投影(back projection)就是一种记录给定图像中的像素点如何适应直方图模型像素分布方式的一种方法。简单来说,即首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征的方法。原创 2017-06-25 17:02:09 · 639 阅读 · 0 评论 -
Opencv学习之图像直方图
Opencv学习之图像直方图 直方图(Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。直方图广泛应用于很多计算机视觉运用当中,通过标记帧与帧之间显著的边缘和颜色的统计变化,来检测视频中场景的变化。在每个兴趣点设置一个有相近特征的直方图所构成“标签”,用以确定图像中的兴趣点。边缘、色彩、角度等直方图构成了可以被传原创 2017-06-25 15:41:51 · 660 阅读 · 0 评论 -
Opencv学习之分水岭算法
Opencv学习之分水岭算法 分水岭算法可以将图像中的边缘转化成“山脉”,将均匀区域转化为“山谷”,这样有助于分割目标。 分水岭算法是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中的每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明:在每原创 2017-06-25 10:51:38 · 5965 阅读 · 2 评论 -
Opencv学习之图像的矩
Opencv学习之图像的矩 一个从一幅数字图形中计算出来的矩集,通常描述了该图像形状的全局特征,并提供了大量的关于该图像不同类型的几何特性信息,比如大小、位置、方向及形状等。一阶矩与形状有关,二阶矩显示曲线围绕直线平均值的扩展程度,三阶矩则是关于平均值的对称性的测量。由二阶矩和三阶矩可以导出一组共7个不变矩。而不变矩是图像的统计特性,满足平移、伸缩、旋转均不变的不变性,在图像识别领域得到了原创 2017-06-24 16:36:14 · 3036 阅读 · 0 评论 -
Opencv学习之使用多边形将轮廓包围
Opencv学习之使用多边形将轮廓包围 由于在实际应用中,常常会有将检测到的轮廓用多边形表示出来的需求。返回外部矩形边界-boundingRect函数此函数计算并返回指定点集最外面(up-right)的矩形边界。 Rect boundingRect(inputArray points) 其唯一的参数就是输入的二维点集。寻找最小包围矩形–minAreaRect函数此函数用于对给定的2D点原创 2017-06-24 01:24:48 · 7365 阅读 · 1 评论 -
Opencv学习之寻找和绘制物体的凸包
Opencv学习之寻找和绘制物体的凸包寻找凸包–convexHull函数凸包(Convex Hull)是在给定二维平面上的点集,将最外层的点连接起来构成的凸多边形,它是能包含点集中所有点的。理解物体形状或轮廓的一种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷(convexity defects),很多复杂物体的特性能很好地被这种缺陷表现出来。 void convexHull(inputA原创 2017-06-23 21:16:29 · 1342 阅读 · 0 评论 -
Opencv学习之查找并绘制轮廓
Opencv学习之查找并绘制轮廓寻找轮廓–findContours函数一个轮廓一般对应一系列的点,也就是图像中的一条曲线。 void findContours(inputArray,outputArray,outputArray hierarchy,int mode,int method, Point offset=Point()) *第一个参数,输入图像,需为8位单通道图像,可以使用compa原创 2017-06-23 20:25:59 · 5941 阅读 · 0 评论