自学过程中顺便整理记录一下
简介
OpenCV的设计目标是提供一套简单而且可扩展的计算机视觉库,应用领域包括人机互动、图像识别、机器视觉、运动分析等。
在Python环境下,使用pip install opencv-python
安装OpenCV库,使用import cv2
进行调用。
基本函数
文件操作
1 2 3 4 5 6 7 8 9 10
| img = cv2.imread('image.jpg')
cv2.imshow('image',img)
cv2.waitKey(delay)
cv2.imwrite('image.jpg',img)
|
图像属性查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
px = img[y, x]
px = img[y, x, c]
img[y, x] = [y_new, x_new]
print(img.shape)
print(img.size)
print(img.dtype)
roi = img[y1:y2, x1:x2]
b,g,r = cv2.split(img)
img = cv2.merge([b,g,r])
|
图像操作
基本编辑
1 2 3 4 5 6 7 8 9 10
| resize_img = cv2.resize(img, (width, height))
rotate_matrix = cv2.getRotationMatrix2D(center, angle, scale)
rotate_img = cv2.warpAffine(img, rotate_matrix, (width, height))
flip_img = cv2.flip(img, 1)
|
图像预处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
gaussblur_img = cv2.GaussianBlur(img, (5, 5), 0)
medianblur_img = cv2.medianBlur(img, 5)
meanblur_img = cv2.blur(img, (5, 5))
|
图像识别检测
1 2 3 4 5 6 7 8
| edge = cv2.Canny(img, threshold1, threshold2)
line = cv2.HoughLines(edge, rho, theta, threshold)
circ = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, dp, minDist, param1, param2, minR, maxR)
|