Python OpenCv学习基础知识一
Posted hhh江月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python OpenCv学习基础知识一相关的知识,希望对你有一定的参考价值。
Python OpenCv学习基础知识一
一、图像操作
import numpy as np
import cv2
from matplotlib import pyplot as plt
def Test1():
"""
最基础的读取内容
"""
img = cv2.imread("E:\\\\\\\\1\\\\\\\\Documents\\\\\\\\PyTorch\\\\\\\\pytorch\\\\\\\\others\\\\\\\\opencv_cv_2\\\\\\\\test1.jpg")
# 读取图片注意一定是绝对路径
# 注意这里需要使用的是绝对路径。
# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 上面哪一行有点问题,不要加。
# read pictures.
cv2.namedWindow("image", cv2.WINDOW_NORMAL)
# set window
# 第一个参数是命名
cv2.resizeWindow("image", 640, 480)
# set the size of the window
# 设置窗口的大小
cv2.moveWindow("image", 0, 0)
# set the position of the window
# (0, 0) 对应于是在整个屏幕的左上角。
# 设置显示窗口的位置
cv2.imshow("image", img)
# show the img
# 第一个参数表示选择的窗口,第二个参数表示显示的图片
cv2.waitKey(0)
# wait for a keyboard event
# 等待按钮按下去
cv2.destroyAllWindows()
# 等到按下了0这个按键的话就会直接退出来啦。
def Test2():
"""
保存图片
"""
img = cv2.imread("E:\\\\\\\\1\\\\\\\\Documents\\\\\\\\PyTorch\\\\\\\\pytorch\\\\\\\\others\\\\\\\\opencv_cv_2\\\\\\\\test2.jpg")
cv2.namedWindow("image", cv2.WINDOW_NORMAL)
cv2.imshow("image", img)
k = cv2.waitKey(0)
if k == 27: # 27 -> esc.
# 按下Esc以后就会直接退出去了。
cv2.destroyAllWindows()
# esc
elif k == ord('s'):
cv2.imwrite("E:\\\\\\\\1\\\\\\\\Documents\\\\\\\\PyTorch\\\\\\\\pytorch\\\\\\\\others\\\\\\\\opencv_cv_2\\\\\\\\test20.jpg", img)
# 保存图片
cv2.destroyAllWindows()
# 保存以后在退出去。
def Test3():
"""
使用matplotlib来展示图片。
"""
img = cv2.imread("E:\\\\\\\\1\\\\\\\\Documents\\\\\\\\PyTorch\\\\\\\\pytorch\\\\\\\\others\\\\\\\\opencv_cv_2\\\\\\\\test2.jpg", 0)
# 0 其实加不加都可以,影响不大
plt.imshow(img,cmap='gray',interpolation = 'bicubic')
plt.xticks([]),plt.yticks([]) #to hide tick values on X and Y axis
plt.show()
if __name__ == '__main__':
# Test1()
# Test2()
Test3()
pass
二、摄像头
"""
cv2处理视频的基本操作
视频
摄像头捕获视频来显示(摄像头)。
摄像头捕获。
"""
import numpy as np
import cv2
# 0 默认摄像头。
cap = cv2.VideoCapture(0) # 摄像头(默认的)。
# 使用默认的摄像头来进行拍照啦。
while(True):
ret, frame = cap.read() # 读取摄像头的内容。
# 获取摄像头的内容。
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 简单的处理
cv2.imshow('frame', gray)
# 显示图像
if cv2.waitKey(1) &0xFF == ord('q'):
# 如果按下 q 按键,那么,就会直接退出 while 循环
break
# 设置退出条件。
# 退出循环以后需要销毁摄像头以及相框的显示
cap.release()
# cap release
cv2.destroyAllWindows()
# windows destroy
"""
以上是使用摄像头来显示视频的。
"""
三、播放视频
"""
视频处理
读取本地的视频,然后进行显示。
读取本地视频并且进行展示出来了。
"""
import numpy as np
import cv2
cap = cv2.VideoCapture('E:\\\\\\\\1\\\\\\\\Documents\\\\\\\\PyTorch\\\\\\\\pytorch\\\\\\\\others\\\\\\\\opencv_cv_2\\\\\\\\test2.mp4')
# 注意这里仍然是绝对的路径,绝对路径!!!!!
while(True):
ret, frame = cap.read()
# 读取内容。
cv2.imshow('frame', frame)
if cv2.waitKey(1) &0xFF == ord('q'): # 退出去了。
break
cap.release()
cv2.destroyAllWindows()
# 释放显示器,摧毁所有的窗口。
四、保存视频
"""
保存视频
"""
import numpy as np
import cv2
# import numpy as np
# import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('E:\\\\\\\\1\\\\\\\\Documents\\\\\\\\PyTorch\\\\\\\\pytorch\\\\\\\\others\\\\\\\\opencv_cv_2\\\\\\\\output.mp4'
,fourcc, 20.0, (640,480))
# 这里仍然是绝对路径。
# 保存视频。
while(cap.isOpened()):
ret, frame = cap.read()
# 读取
if ret==True:
# frame = cv2.flip(frame,0)
# 这个是视频进行翻转的操作,可以不要的。
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
# 退出
break
else:
# 退出去。
break
# Release everything if job is finished
cap.release()
# 摄像头的释放
out.release()
# 输出视频的释放
cv2.destroyAllWindows()
# 窗口的释放
"""
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
"""
"""
这段代码是会直接进行视频翻转的操作的。
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
"""
最后,谢谢大家的阅读与支持了啊。
以上是关于Python OpenCv学习基础知识一的主要内容,如果未能解决你的问题,请参考以下文章