2016-06-05 Lu Huang
本节实现的是提取出灰度图像和彩色图像的直方图。 显示灰度图像的灰度直方图 显示彩色图像各个通道的灰度直方图 在一幅图上显示三个通道的灰度直方图 实现过程 引用与打开图片 不再赘述,代码如下。 ``` python import cv2 import numpy img1 = cv2.imread("test1.jpg", 0) #灰度图像 img2 = cv2.imread("test2.jpg") #彩色图像 ``` 灰度图像直方图 opencv里自带了calcHist()函数,可以计算一幅图像中各个像素值出现的次数,其函数的各个参数如下: python hist = cv2.calcHist([i 继续阅读 »
2016-10-26 ruki
xmake的工程描述文件xmake.lua虽然基于lua语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake对其进行了一层封装,使得编写xmake.lua不会像些makefile那样繁琐 基本上写个简单的工程构建描述,只需三行就能搞定,例如: lua target("test") set_kind("binary") add_files("src/*.c") 然后只需要执行编译并且运行它: bash $ xmake run test 这对于想要临时写些测试代码来讲,极大地提升了开发效率。。 作用域与工程描述语法 xmake的描述语法是按作用域划分的,主要分为: 外部作用域 内部作用域 继续阅读 »
2016-11-15 ruki
最近对xmake.lua的工程描述语法进行了增强,现已可以同时支持两种不同语法风格。 set-add描述风格 key-val描述风格 set-add描述风格 这种是xmake经典的设置风格,例如: lua target("test") set_kind("static") add_defines("DEBUG") add_files("src/*.c", "test/*.cpp") 优势:控制灵活,可以根据各种条件,通过if-then进行灵活的条件编译,可以驾驭各种高度复杂的配置需求。 劣势:作用域控制不明显,需要手动规范化缩进 key-val描述风格 这种是xmake最近新加的风格,例如: l 继续阅读 »
2016-11-15 ruki
Recently, xmake's description syntax has been enhanced to support two different grammar styles at the same time. The set-add style The key-val style The set-add style This is xmake's classic style, for example: lua target("test") set_kind("static") add_defines("DEBUG") add_files("src/*.c", "test/*.cpp") 继续阅读 »
2016-04-23 Wenjie Yao
  最近由于TW技术雷达(Tech Radar)的机缘,同事向我们介绍了一个用于浏览器同步测试的工具 --- Browsersync,使用之后,发现它着实简单,而且十分炫酷。更重要的一点是,Browsersync可以同时在PC、平板、手机等设备下进项UI调试,换句话说,你在其中一个浏览器上的操作会同步到多个设备的多个浏览器上。 继续阅读 »
2016-06-10 Lu Huang
本节实现的是使用OpenCV里自带的函数,将两幅图片按照特定的比例融合 实现过程 引用与读取图片 不再赘述,代码如下。 ```python import cv2 import numpy img1 = cv2.imread('test1.png') img2 = cv2.imread('test2.png') ``` 融合图片 利用addWeighted()函数,将图片1的比例设置为0.6,图片2的0.4,如下: python mg_mix = cv2.addWeighted(img1, 0.6, img2, 0.4, 0) 显示图片 分别显示两幅原图和融合后的图片: ```python cv2.imsh 继续阅读 »
2015-07-06 Eric Wang
Version:Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32 文件与I/O 读写文本数据 使用带有rt模式的open()函数读取文本文件 ```python with open('test.csv', mode='rt', encoding='utf-8') as f: data = f.read() print(data) with open('test.csv', mode='rt', encoding='utf-8') as f: for line in 继续阅读 »
2016-12-21 AnnatarHe
最近写了一道数组去重的题,手抖,紧张,没写好。后来写了一会儿觉得还挺有意义的。现在做一下记录 Test case 测试用例如下 import test from 'ava' import unique from '../src/unique' 继续阅读 »
2015-01-05 veryyoung
最近突然发现Java注解真心神器。一行简单的注解可以搞定N多事情。简直不能再方便了。 注解可以看成是一个接口,注解实例就是一个实现了该接口的动态代理类。 注解大多是用做对某个类、方法、字段进行说明,标识的。以便在程序运行期间我们通 过反射获得该字段或方法的注解的实例,来决定该做些什么处理或不该进行什么处理。 定义和调用注解的方法都很简单,这里就不说明了。 重点说明下怎么让注解work起来。 注解本身并不会做任何事情,它需要工具支持才会有用。比如JUnit4的@Test注解自身不会做任何事情,JUnit会识别并调用所有标识为@Test的方法,这种识别处理一般是采用代理模式,通过反射来调用。 大致代码如下 import ja 继续阅读 »
2015-08-01 Lim Geng
分组 非捕获分组 在正则表达式中遇到小括号就可以认为是一个分组,比如/(a)bcda\1/,(a)就是一个分组,\1代表第一个分组。这种分组可以成为 捕获分组。 var reg = /(a)bcd\1/ console.log(reg.test('abcdef')) // false console.log(reg.test('abcdaef')) // true \1是个占位符,意思是这里的内容匹配的和第一个分组的一样,比如/(xyz)bcd\1/实际上就等同于/(xyz)bcdxyz/, 与其相对的就是非捕获分组,比如/(?:a)bcda/,(?:a)就是非捕获分组,不能通过\1引用 var reg = /(?:a 继续阅读 »