python关于图像和视频的基本操作

    科技2022-07-21  106

    import cv2 import matplotlib.pyplot as plt import numpy as np #图片操作 #cv2.IMREAD_COLOR 彩色图像(BGR) #cv2.IMREAD_GRAYSCALE 灰度图像 def cv_show(name,img): #创建窗口显示图像 cv2.imshow(name,img) #延时 cv2.waitKey(0) cv2.destroyAllWindows() img1=cv2.imread("2.jpg") img2=cv2.imread("2.jpg.ascii.JPG",cv2.IMREAD_IGNORE_ORIENTATION) #图像保存 #cv2.imwrite("3.png",img2) #截取部分图像数据 temp = img1[100:200,100:200] #cv_show("temp",temp) #分离通道 b,g,r = cv2.split(img1) #组合通道 img = cv2.merge((b,g,r)) #单通道显示 cur_img = img1.copy() cur_img[:,:,0] = 0 cur_img[:,:,1] = 0 cv_show("r",cur_img) #边界填充 top_size,bottom_size,left_size,right_size = (50,50,50,50) replicate0 = cv2.copyMakeBorder(img1,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE) replicate1 = cv2.copyMakeBorder(img1,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT) replicate2 = cv2.copyMakeBorder(img1,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT_101) replicate3 = cv2.copyMakeBorder(img1,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_WRAP) replicate4 = cv2.copyMakeBorder(img1,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_CONSTANT,value=255) #不同填充方式效果展示 plt.subplot(231),plt.imshow(img,"gray"),plt.title("original") plt.subplot(232),plt.imshow(replicate0,"gray"),plt.title("REPLICATE") plt.subplot(233),plt.imshow(replicate1,"gray"),plt.title("REFLECT") plt.subplot(234),plt.imshow(replicate2,"gray"),plt.title("REFLECT_101") plt.subplot(235),plt.imshow(replicate3,"gray"),plt.title("WRAP") plt.subplot(236),plt.imshow(replicate4,"gray"),plt.title("CONSTANT") #图像伸缩 res = cv2.resize(img1,(0,0),fx=1,fy=2) cv_show("1",res) #plt.imshow(res) #图像叠加 #res = cv2.addWeighted(img1,0.4,img2,0.6) #展示多个图片 res = np.hstack((img1,img1,img1))#横着 #res = np.vstack((img1,img1,img1))#竖着 cv_show("1",res) #视频操作 #vc = cv2.VideoCapture("C:/Users/Public/Documents/National Instruments/Vision/Examples/Images/AVIs/Balloon.avi") vc = cv2.VideoCapture("D:/avi/会声会影翻页书本演绎教师节相册模板.mp4") #检查打开是否正确 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(1) & 0xFF ==27: break vc.release() cv2.destroyAllWindows()
    Processed: 0.010, SQL: 8