1. 数字图像

数字图像:将二维图像有限数字的数值像素表示。
每个像素点可有各自的颜色值,可用RGB或CMYK(青、品红、黄、黑)色域。
分辨率是度量图像内数据量多少的一个参数,通常表示成每英寸像素数和每英寸点数。

2. pip安装OpenCV

windows

如果没有安装numpy,要先安装它:

pip install  -i https://pypi.douban.com/simple numpy

到:
​​​ http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv​​​ 下载opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl
运行

pip install opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl

centos

pip install numpy
pip install mlpy

cd /opt
git clone https://github.com/Itseez/opencv.git
cd opencv/
git checkout tags/2.4.11

mkdir build
cd build
cmake -D WITH_FFMPEG=ON -D WITH_TBB=ON -D WITH_EIGEN=ON -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
make install

cd /usr/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
ln -s /usr/local/lib/python2.7/site-packages/cv.py cv.py

2. OpenCV的Python绑定实例

示例:加载并预览一幅图片。

import cv2
fn = "test.jpg"

if __name__ == '__main__':
print 'loading %s ..' % fn
img = cv2.imread(fn)
cv2.imshow('preview', img)
cv2.waitKey()
cv2.destroyAllWindows()

预览结果:
图像基础、OpenCV入门1_数据

随机生成像素

# -*- coding:utf-8 -*-


import cv2
import numpy as np


if __name__ == '__main__':
# 行数
sz1 = 200
# 列数
sz2 = 300

print u'产生空图像矩阵(%d*%d) ...' % (sz1,sz2)

img = np.zeros((sz1, sz2, 3), np.uint8)
pos1 = np.random.randint(200, size=(2000, 1)) ### 行位置随机数组
pos2 = np.random.randint(300, size=(2000, 1)) ### 列位置随机数组

# 在随机位置处设置像素点值
for i in range(2000):
img[pos1[i],pos2[i],[0]] = np.random.randint(0,255)
img[pos1[i],pos2[i],[1]] = np.random.randint(0,255)
img[pos1[i],pos2[i],[2]] = np.random.randint(0,255)

# 显示图像
cv2.imshow('preview', img)

# 等待按键
cv2.waitKey()

# 销毁窗口
cv2.destroyAllWindows()

图像基础、OpenCV入门1_git_02

获取图像大小

# -*- coding:utf-8 -*-


import cv2
import numpy as np
fn = "test.jpg"


if __name__ == '__main__':
print 'loading %s ...' % fn
print u' 正在处理中 ',
img = cv2.imread(fn)
# 获取图像矩阵大小
sp = img.shape
print sp

# 高度
sz1 = sp[0]

# 宽度
sz2 = sp[1]

print 'width:%d\nheight:%d' % (sz2,sz1)

输出结果:

loading test.jpg ...
正在处理中 (200L, 280L, 3L)
width:280
height:200