本节实现的是使用OpenCV里自带的函数,绘制直线、长方形、圆形和椭圆。
绘制直线
绘制长方形
绘制圆形
绘制椭圆
添加文字
实现过程
引用与创建空图
不再赘述,代码如下。
``` python
import cv2
import numpy
empty image
img = np.zeros((512, 512, 3), np.uint8)
```
绘制直线
使用opencv自带的line()函数绘制一条对角线,其声明如下:
python
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
其中各种参数的意义如下:
img
继续阅读 »
本节实现的是提取出灰度图像和彩色图像的直方图。
显示灰度图像的灰度直方图
显示彩色图像各个通道的灰度直方图
在一幅图上显示三个通道的灰度直方图
实现过程
引用与打开图片
不再赘述,代码如下。
``` python
import cv2
import numpy
img1 = cv2.imread("test1.jpg", 0) #灰度图像
img2 = cv2.imread("test2.jpg") #彩色图像
```
灰度图像直方图
opencv里自带了calcHist()函数,可以计算一幅图像中各个像素值出现的次数,其函数的各个参数如下:
python
hist = cv2.calcHist([i
继续阅读 »
JSONP: JSON with padding
JSONP 是用来解决跨域请求的,它允许用户传递一个 callback 给服务器端,然后服务端返回数据时会将这个 callback 参数作为函数名来包裹住 JSON 数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了
继续阅读 »
content
{:toc}
题目
题目来自 慕课网 JavaScript 深入浅出 1-6 编程练习
请在 index.html 文件中,编写 arraysSimilar 函数,实现判断传入的两个数组是否相似。具体需求:
数组中的成员类型相同,顺序可以不同。例如 [1, true] 与 [false, 2] 是相似的。
数组的长度一致。
类型的判断范围,需要区分: String, Boolean, Number, undefined, null, 函数, 日期, window.
继续阅读 »
TBOX的线程池通过在每个worker中批量一次拉取多个task,对锁的竞争进行了优化。
由于每个task的函数实现不会太多,所以可以根据每个task的函数地址做hash,统计出每个task执行所花费的平均时间。然后根据这个平均值来动态计算每个worker一次拉取的task的数量,TBOX里面默认每个worker一次拉取10s的task量,这样可以尽可能的避免worker间锁的频繁抢占。
所有从等待队列被拉取出来的task,都会被放到pending队列中去,如果等待队列中的task都被取完了,某个worker处于了空闲状态,就会尝试去pending中,重新拉取其他worker还没有执行到的task, 这样可以解决某些task耗时
继续阅读 »
主页
源码
更新内容
此版本,主要修复一些bug和稳定性改善
改进
修改安装和卸载的action处理
更新工程模板
增强函数检测
Bugs修复
#7: 修复用模板创建工程后,target名不对问题:'[targetname]'
#9: 修复clang不支持c++11的问题
修复api作用域泄露问题
修复在windows上的一些路径问题
修复检测宏函数失败问题
修复检测工具链失败问题
修复windows上编译android版本失败
继续阅读 »
Synchronized 是Java语言的关键字,可用来给对象和方法或者代码块加锁。
当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。
当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。
另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
然而,当一个线程访问object的一个加锁代码块时,另一个线程仍然可以访问该object中的非加锁代码块。
synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。
如果再细的分类,synchronized可作用于instance变量、obj
继续阅读 »
本节实现的是使用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
继续阅读 »
编译型和解释型:
1.1 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件。
1.2 解释型语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译。
动态语言和静态语言(对应变量而言):
2.1 动态语言:一种在执行期间才去发现数据类型的语言, 动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。pythton
2.2 静态语言:即一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。C、C++、Java
强类型定义语言和
继续阅读 »
通过绑定规则来确定this的绑定对象。
默认绑定
默认绑定规则看作是无法应用其他规则时的规则,
独立函数调用是最常用的函数调用方式。比如:
```
function foo() {
console.log( this.a );
}
var a = 2;
foo(); // 2
```
此时foo在调用的时候是默认绑定,因为没有指定上下文,所以默认上下文
是window,而var a = 2;这句意思是给window添加了一个a属性,并赋值为2,
所以会打印2。
如果使用严格模式(strict mode),那么全局对象将无法使用默认绑定,因为
this会绑定到undefined.
隐式绑定
另一条需要考虑的规则是调
继续阅读 »