- 博客(16)
- 收藏
- 关注
原创 OpenCV中图像显示、读取与保存
众所周知,opencv中的cv2.imread函数返回的图像数据,通道是BGR,而不是一般意义上的RGB;但是,这时如果用cv2.imshow进行显示,看到的却是正常的样子;而如果用其他库的显示函数,如matplotlib的plt.imshow来显示,则是异常的显示,一般都是图片发蓝。如果把该图像数据用cv2.imwrite再保存一下,再用其他库的图像打开,plt.imread,然后再显示,结果又...
2018-09-17 13:43:19 2752
原创 mxnet加载模型并进行前向推断
mxnet是由华人为主的团队(陈天奇,王乃岩)开发的深度学习架构;主要开发语言是python,相比TensorFlow,其最大的特点是接口友好。训练得到新的mxnet模型(.params是二进制参数文件,.json是文本网络结构文件)之后,拿模型来进行预测也是工程中重要的工作。这一过程核心代码为: sym, arg_params, aux_params = mx.model.loa...
2018-08-01 13:40:31 9234 3
原创 【LeetCode 55】 跳跃游戏 两种方法
我自己解了一个方法,又借鉴网上的贪心算法又写了一遍代码。如下。第一个是贪心算法,遍历元素,维护的指标为当前能够达到的最大值,该最大值是比较上一循环的最大值和当前做运算的结果进行比较得来的。这个方法是网上最常用的方法。相关注意事项见代码注释。// 第三遍提交:看网上的贪心算法,自己也写了一个// 最后在做一些说明。这里应用贪心算法,,第一,一定遍历所有元素,而不是跳跃。第二注意maxreach的更...
2018-05-24 16:07:21 9594
原创 【leetcode】 110判断平衡二叉树
在不熟悉递归的情况下,用了两次递归完成了这道题。以作纪念。class Solution{//解决过程两次用到递归,完美、快速地解决了这道题;首先一个求高度的函数这个函数要用到递归;之后在主函数里面,比较两个子树的高度差,如果二者平衡,也要继续分别递归二者;public: bool isBalanced(TreeNode* root) { if (root =...
2018-05-16 01:02:41 380
原创 【leetcode】110 判断一棵二叉树是否平衡二叉树
在不熟悉递归的情况下,用了两次递归来完成该题,做一纪念{//解决过程两次用到递归,完美、快速地解决了这道题;首先一个求高度的函数这个函数要用到递归;之后在主函数里面,比较两个子树的高度差,如果二者平衡,也要继续分别递归二者;public: bool isBalanced(TreeNode* root) { if (root == NULL) ...
2018-05-16 00:55:47 296
原创 【leetcode】比较顺利的完成了链表的一道题——链表去重leetcode83,对代码做一个记录
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* d...
2018-05-12 12:46:42 434
原创 【LeetCode】二叉树层次遍历 (一次让人疯掉的超低级bug)
我对递归的思想有点犯怵,递归这个东西确实需要天赋和训练。所以二叉树遍历我首先掌握的是迭代方法。层次遍历的基本思路是,因为要从上到下,从左到右进行遍历,我们进行碰到数据的过程和要处理的过程方向是一致的,所以最好使用队列queue数据结构:在while循环中,每处理一个数据,一次把它的左子节点(如果有的话)和右子节点(如果有的话)入队,直到队列变空。LeetCode上这一题,不仅要按正确的方式(层次遍...
2018-05-10 15:36:22 1866
原创 再次拾起链表--图解基本操作之链表迭代反转
上大学的时候链表学习的就不好,在刷LeetCode的时候链表题目还挺多,实际上面试过程链表也是必考的。因此简单总结了链表基本操作——反转的迭代式方法;递归式反转暂未研究。迭代式方法,除了表示链表头的head之外,还要有两个指针,cur和pre表示当前处理节点和当前处理节点的前一个节点。实际上如果从头迭代,一直是原来的第一个节点。核心代码如下:ListNode* reverseList(ListNo...
2018-05-08 13:57:28 422
原创 leetcode 移除元素
我在做这一题的时候用到了STL种find函数以及vector的erase函数,虽然空间复杂度满足要求,但是时间复杂度却不够优秀。代码如下,class Solution {public: int removeElement(vector<int>& nums, int val) { //先处理退化的情况 int N = nums...
2018-05-06 02:03:34 236
原创 leetcode题目 字符串最大公共前缀
在做leetcode字符串最大公共前缀的时候,整体思路可能不是很优秀,但是正确的,但提交了好多次,其中最重要的原因是没有处理退化的情况;第二个原因就是在少分析了else的情况,详细信息见代码。class Solution {public: string longestCommonPrefix(vector<string>& strs) { ...
2018-05-05 17:55:25 451 1
原创 leetcode第一题
某天看到了刷题神器LeetCode,简单研究了一下怎么使用的,并刷了第一道题。把自己的答案写下来。class Solution{public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> v_out; map<in...
2018-05-02 17:29:51 171
原创 opencv自带的getlistfolders的一个问题
用opencv自带的遍历文件夹函数,遍历文件夹的时候,发现有的文件夹竟然遍历不到,仔细对比了能被遍历到的和不能被遍历到的文件夹的区别,发现在“属性-高级属性”选项中,不同,能被遍历到的“可以存档文件夹”一项是未被勾选的。把原来不能被遍历到的修改一下,发现可以被遍历到了,真是一个神奇的bug。不知道另一个函数GetlistFiles,对于该属性是不是也是敏感的?需要另行研究。...
2018-04-28 16:30:34 708
原创 Virtualenv 配置TensorFlow、opencv及其他库
Virtualenv -TensorFlow及其他配置文档一、采用Virtualenv-TensorFlow的原因近期要使用Ubuntu系统笔记本完成自动驾驶车辆的调试,需要使用的编程语言、软件和框架包括:C++、Python、LCM、numpy、scipy、matplotlib、Opencv、TensorFlow、Keras。由于笔记本装的Ubuntu14.04系统自带的Python为2.7,而...
2018-04-23 19:21:12 670
原创 人脸检测之后的旋转摆正与裁剪
使用检测网络检测出人脸之后,在下一步比对或者训练之前,要对人脸进行对齐,我觉得对齐这个词不够精确,我称之为摆正。通过调研,我使用的方法是使用两只眼睛的坐标作为摆正的标准(当然,这需要检测网路能够输出眼睛坐标),摆正之后要对人脸进行重新裁剪,这需要利用眼睛、鼻子和嘴角的信息。归纳起来就是:1、得出两只眼睛形成的直线的夹角,按照该夹角的反方向进行图像的旋转;旋转之后关键的一步是根据旋转公式,获得旋转之...
2018-04-02 20:30:50 6835 5
原创 ubuntu14.04 python3.5安装工具包(个人备忘)
anaconda包自带了numpy等多种工具包,对于Python小白来说是一个福利,但是我不习惯用,我更喜欢一个单独的编辑器,比如pycharm,单独的Python解释器(Python3.5.2)。单独的解释器,就需要重新安装各种包,在Windows系统下这个问题好解决,但是在初学Linux系统(Ubuntu)情况下,这个问题还很棘手,对我来说。摸索了一段时间成功装上了Python3.5的nu
2017-10-20 17:40:46 368
原创 opencv中的直线拟合和直线添加【本大龄新程序员的第一篇技术博客】
opencv中的直线拟合和直线添加 在用激光雷达数据做道路边沿检测的时候,通过像素点差分阈值大略判断出道边沿点之后,通过边沿点进行直线拟合。opencv有相关函数,先将代码写出来如下。import cv2import matplotlib.pyplot as pltimport numpy as npimg = cv2.imread('../depth_from_da
2017-09-30 11:24:03 1183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人