一、安装python和opencv库
该学习皆在Linux操作系统上实行,Linux系统自带python,故仅需安装opencv:
ubuntu系统:
sudo apt-get update
sudo apt-get install python3-opencv
二、利用opencv查看图像(像素矩阵数据)
计算机中图像由一块块像素点构成,像素点又分为R、G、B三个模块,每个模块又有对应的色度。
1.查看图片的像素矩阵数据
import cv2
# 读取图片
img = cv2.imread('p1.jpg')
# 打印图像的像素矩阵数据
print("Image shape:", img.shape) # 打印图像的形状,即 (高度, 宽度, 通道数)
print("Image pixel matrix:")
print(img) # 打印图像的像素矩阵数据
2.图像显示
import cv2
import matplotlib.pyplot as plt
import numpy as np
img=cv2.imread('p1.jpg')
cv2.imshow('pic',img)
cv2.waitKey(0)
cv2.destoryAllWindows()
其中“cv2.waitKey(0)”语句表示“任意键以关闭”,即图像不会自动消失,按任意键关闭窗口;
若将数字改为任意大于零的数字,即为x毫秒后自动关闭窗口。
【可以封装为函数,例如:】
def cv_show(name,img)
【一般图片皆为彩色图片,如上例。若希望将其转换为为灰度图(即黑白图片),作以下改动:】
img=cv2.imread('p1.jpg',cv2.IMREAD_GRAYSCALE)
许多检测任务中,都需要将彩色照片转换为灰度图。
3.图片保存
cv2.imwrite('filename.格式',img)
三、查看视频
1.将视频转换为黑白视频并播放
import cv2
vc = cv2.VideoCapture('video.webm')
if vc.isOpened():
open, frame =vc.read()
else:
open = False
while open:
ret,frame =vc.read()
if frame is None:
break
if ret == True:
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow('result',gray)
if cv2.waitKey(10) & 0xFF == 27:
break
vc.release()
cv2.destoryAllWindows()