2016-06-03 Lu Huang
本节实现的是在图片上模拟机上椒盐噪声,主要过程如下。 打开一个图片 产生随机坐标 加上“椒盐” 显示加噪图片 实现过程 引用 这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 python import cv2 import numpy 打开图片 cv2库里的函数imread()用来读取图片,imshow()可用于显示图片,此外imwrite可以用来写图片,即保存图片。这里把显示图片的窗口指定为“Image”。 python img = cv2.imread("test.png") 加 继续阅读 »
2016-06-11 Lu Huang
本节实现的是使用内建摄像头捕获视频,并保存视频。 创建摄像头对象 逐帧显示实现视频播放 保存摄像头的每一帧图像 实现过程 引用 不再赘述,代码如下。 python import cv2 import numpy 创建摄像头对象 使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。 python cap = cv2.VideoCapture(0) 定义写入视频格式和写入对象 利用cv2.cv.FOURCC(*'XVID')定义视频格式,然后创建视频写入对象。 ``` python Define the codec and create 继续阅读 »
2016-06-04 Lu Huang
本节实现的是提取出彩色图像的三个通道。 打开一个彩色图片 利用系统函数分离三通道 自行分离三通道 显示显示三通道图片 实现过程 引用与打开图片 不再赘述,代码如下。 ``` python import cv2 import numpy img = cv2.imread("test.png") ``` 系统函数分离三通道 opencv里自带了分离三通道的函数split(),返回值依次是蓝色、绿色和红色通道的灰度图,代码如下: python b, g, r = cv2.split(img) cv2.imshow("Blue 1", b) cv2.imshow("Green 1", g) cv2.imshow("Red 继续阅读 »
2016-06-07 Lu Huang
本节实现的是读取视频,并显示视频的每一帧以实现视频的播放。 创建摄像头对象,指向文件 逐帧显示实现视频播放 实现过程 引用 不再赘述,代码如下。 python import cv2 import numpy 创建视频对象 使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。 python cap = cv2.VideoCapture("../test.avi") 逐帧显示实现视频播放 在while循环中,利用视频对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间检测到了键盘输入q,则退出,即关闭窗口。 pyt 继续阅读 »
2016-07-07 ruki
xmake通过import接口,可以在自定义脚本中导入各种内置类库和扩展类库模块,使得xmake的插件开发具有更多的灵活性,提供更丰富的功能。 我们先看下,目前xmake提供的一些类库: . ├── _g.lua ├── assert.lua ├── catch.lua ├── coroutine.lua ├── debug.lua ├── finally.lua ├── format.lua ├── ifelse.lua ├── import │   └── core │   ├── base │   │  继续阅读 »
2016-06-13 Lu Huang
本节实现的是使用OpenCV里自带的函数,在双击图片时,以其为圆心绘制圆。 回调函数 捕捉鼠标事件 实现过程 引用与创建空图 不再赘述,代码如下。 ``` python import cv2 import numpy empty image img = np.zeros((512, 512, 3), np.uint8) ``` 设置回调函数 检测鼠标事件,如果左击鼠标则绘制圆。 ```python call back function def draw_circle(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: 继续阅读 »
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-06-15 Lu Huang
本节实现的是使用OpenCV里自带的函数,将一幅logo加到一张图片上去。 提取mask 利用mask生成带logo图片 实现过程 引用与读取图片 不再赘述,代码如下。 ``` python import cv2 import numpy as np img = cv2.imread('test.png') logo = cv2.imread('logo.jpg') cv2.imshow("Img_Original", img) ``` 获取mask 先将logo转成黑白,然后设置合适的阈值二值化,使得有内容的部分为黑(0),无内容的部分为白(255),这里使用的阈值为205。 ```python logo_gray 继续阅读 »
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 继续阅读 »
2016-06-17 Lu Huang
本节实现的是使用OpenCV里自带的函数,对图像进行简单的几何变换。 放大 缩小 平移 旋转 实现过程 读取原图并显示 不再赘述。 ``` python import cv2 import numpy as np read the original img = cv2.imread('../test2.jpg') cv2.imshow('original', img) ``` 放大 利用OpenCV自带的resize()函数实现放大与缩小。其声明为: python cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst 其中各个参数的意义如 继续阅读 »