opencv 类似于Python 的 PIL 模块,但是 opencv 的功能更加强大。
opencv 的基本操作:
import cv2
import numpy as np
#opencv2 读取的图片是按照 BGR 顺序排列的,返回的是一个 BGR 的数组
#load a image
img = cv2.imread('test.jpg')
#获得某个像素的值
pixel = img[100,100,:]
#获得像素 blue 的值
blue = img[100,100,0]
#也可以通过这种访问方式改变像素值
img[100,100] = [255,255,255]
#numpy 是一个快速计算数组的模块,仅仅访问数组或改变数组的值是很慢的,所以有更好的访问方式
img.item(10,10,2)
img.itemset((10,10,2),100)
#获得 image 的属性
img.shape
img.size
img.dtype
#保存图片
cv2.imwrite('02.jpg',img)
Image ROI:
#获得图片中 ROI
ball = img[280:340,330:390]
Spliting and merging the Image:
b,g,r = cv2.split(img)
img = cv2.merge((bgr))
#cv2.split 比较费时,所以尽量使用 numpy 数组操作
Contours: