一、cv2.imwrite函數的概述
cv2.imwrite函數是OpenCV中一個非常重要的函數,主要用來將一個numpy數組裡的數據保存成圖片文件到本地磁碟。該函數第一個參數是保存圖片的文件名,第二個參數是要保存的圖片數據,第三個參數是在保存圖片時需要指定的一些參數
代碼示例:
import cv2 image = cv2.imread('example.jpg') #讀取圖像 cv2.imwrite('saved_image.jpg',image) #將圖像保存到本地磁碟
二、cv2.imwrite函數參數的介紹
1. filename:保存圖片的文件名,文件名應以.jpg,.png,.bmp,.tiff等格式結尾。
2. img:要保存的圖像數據。注意圖像必須是numpy數組格式。
3. params:該參數是一個可選的參數,用來指定保存圖像的一些特殊的格式,如指定JPEG圖像的質量,格式為[CV_IMWRITE_JPEG_QUALITY, 95]。
代碼示例:
import cv2 image = cv2.imread('example.jpg') cv2.imwrite('saved_image.jpg',image,[cv2.IMWRITE_JPEG_QUALITY,95])
三、如何使用cv2.imwrite保存多個圖片文件
當需要保存多個圖片文件時,我們可以使用循環來迭代每個要保存的圖片,然後逐個保存到本地磁碟上。
代碼示例:
import cv2 import os folder_path = 'images/' if not os.path.exists(folder_path): os.makedirs(folder_path) for i in range(10): img = np.random.randint(0,255,(256,256,3)).astype(np.uint8) cv2.imwrite(folder_path+str(i)+'.jpg',img)
四、使用cv2.imwrite保存視頻中的圖幀數據
在處理視頻時,我們通常需要提取視頻中的某些圖幀,然後保存這些圖幀到本地磁碟上。如下代碼展示了如何從視頻中提取每個第30幀圖像,然後保存到本地磁碟上。
代碼示例:
import cv2 video_path = 'example.mp4' cap = cv2.VideoCapture(video_path) # 視頻的幀數 frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) for i in range(frame_count): ret,frame = cap.read() if i%30 == 0: #每第30幀保存 cv2.imwrite('frame_'+str(i)+'.jpg',frame) cap.release()
五、如何使用cv2.imwrite保存灰度圖像
在一些情況下,我們需要將彩色圖像轉換為灰度圖像,然後保存到本地磁碟上。使用cv2.imwrite函數保存灰度圖像與保存彩色圖像的方式是相同的,只需要將灰度圖像的色彩模式設置為cv2.COLOR_RGB2GRAY即可。
代碼示例:
import cv2 image_color = cv2.imread('example.jpg') #將彩色圖像轉為灰度圖像 image_gray = cv2.cvtColor(image_color,cv2.COLOR_RGB2GRAY) #保存灰度圖像 cv2.imwrite('example_gray.jpg',image_gray)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246524.html