OpenCV 儲存影象

Ammar Ali 2022年5月17日
OpenCV 儲存影象

本教程將討論使用 OpenCV 的 imwrite() 函式儲存影象。

在 OpenCV 中儲存影象

影象由放置在矩陣中的畫素組成。每個畫素都包含一個顏色值作為 BGR 三元組。

例如,一張 512×512 的影象由 512 列和 512 行組成,影象中存在的畫素總數等於行數乘以列數。BGR 三元組值在 8 點陣圖像中包含範圍從 0 到 255 的三個值。

第一個值對應於藍色的強度。例如,值為 (255,0,0) 的畫素將具有深藍色,而值為 (50,0,0) 的畫素將具有淺藍色。

第二個和第三個 BRG 三元組值對應於綠色和紅色。我們可以設定這三種顏色的值來製作任何顏色。

在 8 點陣圖像中,單個畫素可以有 256 乘以 256 乘以 255 種不同的顏色。我們可以使用 OpenCV 的 imwrite() 函式以我們想要的影象格式儲存影象。

例如,讓我們建立一個彩色影象並將其儲存為 jpg。請參閱下面的程式碼。

import cv2
import numpy as np

img = np.zeros((512,512,3), dtype=np.uint8)
img[:,0:250] = (255,255,0)
img[:,250:512] = (0,255,255)

cv2.imwrite('Image_name.jpg', img)

saved_image = cv2.imread('Image_name.jpg')
cv2.imshow('image', saved_image)
cv2.waitKey()

輸出:

在 OpenCV 中儲存影象

我們使用 NumPyzeros() 函式來建立上面的影象。imwrite() 函式的第一個引數是檔案的名稱和副檔名,第二個引數是儲存影象的變數。

在上面的程式碼中,我們使用 imread() 函式讀取我們儲存的影象並使用 OpenCV 的 imshow() 函式顯示它。我們要儲存的影象應該是 8 位的,並且有一個或三個通道。

對於 16 點陣圖像,我們只能將其儲存為 TIFF、JPEG 和 PNG 格式。對於 32 點陣圖像,我們可以將其儲存為 TIFF、HDR 和 OpenEXR 格式。

此外,影象應該在 BGR 顏色空間中。如果沒有,我們可以使用 OpenCV 的 cvtColor() 函式將一種顏色空間更改為另一種顏色空間。

如果通道順序或深度不同,我們可以使用 convertTo() 函式將影象轉換為支援的格式。

我們還可以使用上述函式儲存 8 位或 16 位 BGRA 色彩空間影象。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - OpenCV Image