本节实现的是同时使用opencv和matplotlib两种方式来显示图像,以比较二者之间的差别。
测试灰度图像
测试彩色图像
分析彩色图像出现差异的原因
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
import matplotlib.pyplot as plot
测试灰度图像
打开灰度图像,先用opencv显示,再用matplotlib显示,代码如下:
``` python
test for a gray image
img1 = cv2.imread("test1.jpg")
using opencv
cv2.imshow("Gray(opencv
继续阅读 »
很多对计算机视觉有兴趣的朋友都会了解和使用OpenCV这个知名的开源库。下面然我来介绍一下如何在Mac 上面安装OpenCV3.0 + Python2.7。
Tool:
OpenCV 源码
Python2.7
(PS:Python的版本是随你去选择,本文主要针对的是2.7版本。其实Python大部分的Mac/Linux 系统都是自带的,没有必要在此安装。)
继续阅读 »
本节实现的是读取视频,并显示视频的每一帧以实现视频的播放。
创建摄像头对象,指向文件
逐帧显示实现视频播放
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
创建视频对象
使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。
python
cap = cv2.VideoCapture("../test.avi")
逐帧显示实现视频播放
在while循环中,利用视频对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间检测到了键盘输入q,则退出,即关闭窗口。
pyt
继续阅读 »
本节实现的是使用OpenCV里自带的有关滚动条的函数,可以调节R、G、B三个数值,并显示颜色。
回调函数
滚动条设置
显示设置的颜色
实现过程
引用与创建空图
不再赘述,代码如下。
``` python
import cv2
import numpy
empty image
img = np.zeros((512, 512, 3), np.uint8)
```
设置空的回调函数
作为滚动条值变化时的回调函数,这里不需要做任何设置,设置为pass:
```python
callbacks
def nothing(x):
pass
```
创建四个滚动条
其中三个分别为R、G和B,其值范围为0~25
继续阅读 »
本节实现的是使用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
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
继续阅读 »
本节实现的是使用OpenCV里自带的函数,检测出视频里图像中的蓝色和天蓝色、青色,比如我的手机背景、我衣服上的蓝色格子,墙砖的蓝色和学生证照片上的蓝色背景。
设置“蓝色”HSV范围
BGR转HSV
捕获摄像头视频
获取蓝色部分mask
图像按位与操作
显示蓝色部分图像
实现过程
定义视频对象
视频对象用于捕获摄像头视频流。
``` python
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
```
设置HSV中蓝色、天蓝色范围
这里主要参考了这个博客,我设置的颜色范围如下。
```python
set blue thresh
lower_blue=
继续阅读 »
本节实现的是使用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
继续阅读 »
现在让我们开始学习如何运行一个传统的“Hello World”程序,这基本上是学习任何编程语言的需要做的第一步。下面将会告诉你如何编写、保存与运行 Python 程序。
通过 Python 来运行的你的程序有两种方法
使用交互式解释器提示符
直接运行一个源代码文件
继续阅读 »
栅栏密码加解密
单行版本
python
railFence = lambda s: [[i, ''.join([s[k * i + j] for j in range(i) for k in range(len(s) / i)])] for i in range(1, len(s)) if not len(s) % i]
print railFence('hello world , 2017 ! ')
正常版本
```python
def railFence(s):
ll = len(s)
res = dict()
for i in range(1, ll):
r = ''
继续阅读 »