网站首页 > 技术文章 正文
一、简介
Python包含丰富的图像处理工具包,例如:
- PIL(Python Imaging Library Python),现在一般使用其分支Pillow
- Matplotlib
- OpenCV-Python :OpenCV(开源计算机视觉库)是计算机视觉应中最广泛的库之一。OpenCV-Python是OpenCV的PythonAPI封装。
数字图像
数字图像:将二维图像有限数字的数值像素表示。
每个像素点可有各自的颜色值,可用RGB或CMYK(青、品红、黄、黑)色域。
分辨率是度量图像内数据量多少的一个参数,通常表示成每英寸像素数和每英寸点数。
二、pip安装OpenCV
1. windows环境(已安装Python2.7)
安装numpy
pip install -i https://pypi.douban.com/simple numpy
安装 OpenCV-Python
到:
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
2. 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
三、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()
预览结果:
随机生成像素(使用Numpy库)
# -*- 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()
获取图像大小
# -*- 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
猜你喜欢
- 2024-09-11 给3D Slicer添加Python第三方插件库
- 2024-09-11 使用Python创建自己的Instagram滤镜
- 2024-09-11 薅羊毛我愿称Python为最强,Python 自动化带你轻松赚钱
- 2024-09-11 史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门
- 2024-09-11 使用python实现简易的人脸检测(python人脸检测106关键点)
- 2024-09-11 机器视觉技术(一)边缘提取(机器视觉边缘检测)
- 2024-09-11 Python-OpenCV 16. 图像特征检测与描述算法
- 2024-09-11 Flask—远程查看行空板USB摄像头视频
- 2024-09-11 OpenCV+Python识别车牌和字符分割的实现
- 2024-09-11 在Fedora中安装OpenCV-Python | 二
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
