k@M0me’s Humble Abode      博  客   时 间 线   归  档 



计算机视觉——入门
Published on Wed Jun 16 2021 12:00:01 GMT+0000

现在开始准备计算机视觉的入门内容,我们计划通过网络上的教程来基本学习 OpenCV 的使用,接下来再进行理论课(计算机视觉)的学习,然后学习深度学习(机器学习)、计算机视觉与深度学习的融合。

OpenCV篇

基本操作

引入图片:

1
2
3
4
5
6
7
8
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('watch.png',cv2.IMREAD_GRAYSCALE)#该方式为灰度引入,而颜色引入为IMREAD_COLOR,保留alpha通道则为IMREAD_UNCHANGED,分别对应着数字0(灰度),1(颜色),-1(不变)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

引入摄像头作为视频源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import numpy as np
import cv2

cap = cv2.VideoCapture(2)

while (True):
ret, frame = cap.read() # ret代表是否有返回值,frame则是得到的帧
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 转换为灰度,没有转换前的就是frame

#(可选)录制到视频并输出:
#fourcc = cv2.VideoWriter_fourcc(*'XVID')
#out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

# 分别显示灰度输出和彩色输出:
cv2.imshow('gray', gray)
cv2.imshow('frame', frame)

#(可选)输出视频文件:
#out.write(frame)

if cv2.waitKey(1) & 0xFF == ord('q'):
break

cap.release()
cv2.destroyAllWindows()

绘制操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
import cv2

img = cv2.imread('D1_res/watch.png',cv2.IMREAD_COLOR)


#基本的绘制操作
cv2.line(img,(0,0),(150,150),(255,255,255),2)#线
cv2.rectangle(img,(50,50),(150,150),(0,0,255),2)#矩形
cv2.circle(img,(100,100), 100, (0,255,0), 2)#圆


#自由绘制
pts = np.array([[0,0],[50,50],[100,150],[200,150]], np.int32)#坐标集
#pts = pts.reshape((-1,1,2)) 可能会用到的操作
cv2.polylines(img, [pts], True, (0,255,255), 3)#绘制对象,坐标集,是否首尾相连,颜色,粗细



font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'TestText',(50,50), font, 1, (200,255,155), 2, cv2.LINE_AA)



cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()