2016-06-16 Lu Huang
本节实现的是使用OpenCV里自带的函数,检测出视频里图像中的蓝色和天蓝色、青色,比如我的手机背景、我衣服上的蓝色格子,墙砖的蓝色和学生证照片上的蓝色背景。 设置“蓝色”HSV范围 BGR转HSV 捕获摄像头视频 获取蓝色部分mask 图像按位与操作 显示蓝色部分图像 实现过程 定义视频对象 视频对象用于捕获摄像头视频流。 ``` python import cv2 import numpy as np cap = cv2.VideoCapture(0) ``` 设置HSV中蓝色、天蓝色范围 这里主要参考了这个博客,我设置的颜色范围如下。 ```python set blue thresh lower_blue= 继续阅读 »
2009-09-02 Klaus Ma
各个语言的正则表达式使用,在这些记录一下: Javascript Javascript的正则函数好像是最简单的了,也可能是因为本身就是一种弱类型的语言:看一下使用吧: var pattern = /test$/; pattern.match("test"); // 这个会匹配全串,返回true or false; pattern.exec("test"); //这个呢则会查找每个匹配的部分,返回值是匹配的字符串 继续阅读 »
2014-04-07 Xiaosong Gao
iOS
一、按比例缩放 首先说按比例缩放,这是在Interface Builder中无法设置的内容。而在代码中,使用NSLayoutConstraint类型的初始化函数中的multiplier参数就可以非常简单的设置按比例缩放。同时也可以设置不同NSLayoutAttribute参数来达到意想不到的效果,比如"A的Width等于B的Height的2倍"这样的效果。 继续阅读 »
2016-09-06 JustWe
作者:刘丰恺 作者博客:若梦浮生 转载请注明文章来源 我们在开发自定义控件的时候经常会有这样的需求,一个控件既需要能够被拖拽,也需要能够被点击。其实这个需求有个矛盾之处,需要被拖拽就要复写onTouch(...)函数,但是这样点击事件就被覆盖了,正常的 onClick() / onLongClick()事件是不能被响应的了。 现在面对这种情况GestureDetector,ViewDragHelper能为我们的开发提供一些便利,但是有的情况下这些封装的工具类没办法很好的满足我们的需求,这时候我们就需要自己来模拟View的点击事件。 模拟View点击事件说起来也很简单,说白了就是获 继续阅读 »
2016-12-14 ruki
lua原生并没有提供try-catch的语法来捕获异常处理,但是提供了pcall/xpcall等接口,可在保护模式下执行lua函数。 因此,可以通过封装这两个接口,来实现try-catch块的捕获机制。 我们可以先来看下,封装后的try-catch使用方式: ```lua try { -- try 代码块 function () error("error message") end, -- catch 代码块 catch { -- 发生异常后,被执行 function (errors) print(errors) end } } ``` 上面 继续阅读 »
2018-12-14 Xie Jingyi
动机 pure functions 看似完美,但却不能模拟现实世界中的诸多任务。这是由于 pure functions 是良定的映射,对于特定的输入值会返回唯一的输出。这种模式在面对如下任务时会显得苍白无力: 有可能失败的任务。如大多数的 IO。 依赖外部状态的任务。如(伪)随机数生成器。 非确定性任务,即对于确定的输入可能有多个输出。这种在 IP 中较为少见。 对外界会造成影响的任务。如大多数的写入过程。 这些问题可以用数学中的域扩充技巧来解决。 域扩充 在数学中,当定义问题的范畴不足以容纳问题的解时,我们通常会对相关的范畴进行扩充。类似的技巧同样也可以应用在这里。 假设一个不良定的函数 f: A -> B: 如果 f 继续阅读 »
2017-02-07 Alex Sun
1. 基本的柱状图 ```py import matplotlib.pyplot as plt data = [5, 20, 15, 25, 10] plt.bar(range(len(data)), data) plt.show() ``` plt.bar函数签名为: py bar(left, height, width=0.8, bottom=None, **kwargs) 事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小。默认情况下,left为柱体的居中位置(可以通过align参数来改变left值的含义),即: (left - width / 2, bottom)为左 继续阅读 »
2016-02-04 ruki
TBOX的内存分配在调试模式下,可以检测支持内存泄露和越界,而且还能精确定位到出问题的那块内存具体分配位置,和函数调用堆栈。 内存泄露检测 内存泄露的检测必须在程序退出的前一刻,调用tb_exit()的时候,才会执行,如果有泄露,会有详细输出到终端上。 c tb_void_t tb_demo_leak() { tb_pointer_t data = tb_malloc0(10); } 输出: [tbox]: [error]: leak: 0x7f9d5b058908 at tb_static_fixed_pool_dump(): 735, memory/impl/stat 继续阅读 »
2014-03-28 W.Y.
介绍 一群恶魔的猪从无辜的小鸟那里偷走了所有的前端架构,现在它们要夺回来。一对特工英雄(愤怒的小鸟)将攻击那些卑鄙的猪,直到夺回属于他们的前端架构。(译者注:本系列是关乎前端架构的讨论,作者借用当前最风靡的游戏 - 愤怒的小鸟,为我们揭开了前端架构的真实面目。) 小鸟们最终能取得胜利吗?它们会战胜那些满身培根味的敌人吗?让我们一起来揭示 JavaScript 之愤怒的小鸟系列的另一个扣人心弦的章节! 阅读本系列的介绍文章,查看所有小鸟以及它们的进攻力量。 战况 红色大鸟 - 立即调用的函数表达式 蓝色小鸟的攻击力 在这篇文章中,我们将看看蓝色小鸟,它通过触发事件和消息来渗透进猪猪的城堡中,慢慢的,小鸟们将一个接一个地 继续阅读 »
2014-03-29 W.Y.
介绍 一群恶魔的猪从无辜的小鸟那里偷走了所有的前端架构,现在它们要夺回来。一对特工英雄(愤怒的小鸟)将攻击那些卑鄙的猪,直到夺回属于他们的前端架构。(译者注:本系列是关乎前端架构的讨论,作者借用当前最风靡的游戏 - 愤怒的小鸟,为我们揭开了前端架构的真实面目。) 小鸟们最终能取得胜利吗?它们会战胜那些满身培根味的敌人吗?让我们一起来揭示 JavaScript 之愤怒的小鸟系列的另一个扣人心弦的章节! 阅读本系列的介绍文章,查看所有小鸟以及它们的进攻力量。 战况 红色大鸟 - 立即调用的函数表达式 蓝色小鸟 - 事件 黄色小鸟的攻击力 在这片文章中,我们将看看黄色小鸟,它使用 RequireJS 作为助推器,利用动态脚 继续阅读 »