读取视频:
import cv2
import matplotlib.pyplot as plt
import numpy as np
video=cv2.VideoCapture("nasa_13013.mp4")
#判断是否成功读取
if video.isOpened():
open,frame=video.read() #如果这一帧可以读出来,返回一个True值
else:
open=False
#利用while循环一帧一帧的对视频进行读取
while open:
ret,frame=video.read()
if frame is None:
break
if ret ==True:
#转换每一帧的颜色,这里是将每一帧装为灰度图
gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow("iu1new.mp4",gray)
#每一帧等待时间
if cv2.waitKey(10) %0xFF==27:
break
video.release()
cv2.destroyAllWindows()
腐蚀操作
img = cv2.imread("line.jpg", 0)
#腐蚀操作
kernel = np.ones((3, 3), np.uint8)
erosion = cv2.erode(img, kernel, iterations=3)
cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()
pie = cv2.imread("pie.png", 0)
cv2.imshow('pie', pie)
kernel =np.ones((30,30),np.uint8)
erosion_1 = cv2.erode(pie,kernel,iterations = 1)
erosion_2 = cv2.erode(pie,kernel,iterations = 2)
erosion_3 = cv2.erode(pie,kernel,iterations = 3)
res = np.hstack((erosion_1,erosion_2,erosion_3)) #拼在一起
cv2.imshow("res",res)
cv2.waitKey(0)
cv2.destroyAllWindows()
膨胀操作
#膨胀操作
dige_dilate = cv2.dilate(erosion,kernel,iterations=1)
cv2.imshow("dilate",dige_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()
pie = cv2.imread("pie.png", 0)
cv2.imshow('pie', pie)
kernel =np.ones((30,30),np.uint8)
erosion_1 = cv2.dilate(pie,kernel,iterations = 1)
erosion_2 = cv2.dilate(pie,kernel,iterations = 2)
erosion_3 = cv2.dilate(pie,kernel,iterations = 3)
res = np.hstack((erosion_1,erosion_2,erosion_3)) #拼在一起
cv2.imshow("res",res)
cv2.waitKey(0)
cv2.destroyAllWindows()
开运算与闭运算
#开运算:先腐蚀,后膨胀
img = cv2.imread("line.jpg", 0)
kernel = np.ones((5, 5), np.uint8)
opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
cv2.imshow("opening",opening)
cv2.waitKey(0)
cv2.destroyAllWindows()
#闭运算:先膨胀,后腐蚀
closing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
cv2.imshow("closing",closing)
cv2.waitKey(0)
cv2.destroyAllWindows()
梯度运算
#梯度 = 膨胀-腐蚀
pie = cv2.imread("pie.png")
kernel = np.ones((7, 7), np.uint8)
dilate = cv2.dilate(pie,kernel,iterations = 5)
erosion = cv2.erode(pie,kernel,iterations = 5)
res = np.hstack((dilate,erosion))
gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)
cv2.imshow("gradient",gradient)
cv2.imshow("res",res)
cv2.waitKey(0)
cv2.destroyAllWindows()
礼帽和黑帽
#礼帽 = 原始输入 - 开运算结果
img = cv2.imread("line.jpg")
kernel = np.ones((7, 7), np.uint8)
tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
cv2.imshow("tophat",tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()
#黑帽 = 闭运算 - 原始输入
img = cv2.imread("line.jpg")
kernel = np.ones((7, 7), np.uint8)
blackhat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
cv2.imshow("blackhat",blackhat)
cv2.waitKey(0)
cv2.destroyAllWindows()