一、Python保存圖像變數
在Python中,用於存儲圖片的變數類型是numpy數組。圖像的大小由數組的形狀決定,其中包括行數、列數和顏色通道數。如果是彩色圖像,則會有R、G和B三個通道。每個通道都由8位整數(0-255)表示其亮度。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 查看數組形狀
print(img.shape)
輸出結果如下:
(1080, 1080, 3)
上述代碼中,通過cv2.imread()函數讀取了一張名為test.jpg的圖片,並用img變數存儲了這個數組。輸出結果的三個數字分別表示圖像的高、寬和通道數。
二、Python保存圖片的代碼
將圖像保存為文件是實現圖像處理的重要步驟之一。Python提供了將數組保存為圖像的函數cv2.imwrite()。該函數的第一個參數是保存的圖片名稱,第二個參數是要保存的圖像數組。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 將圖片保存為new_test.jpg
cv2.imwrite('new_test.jpg', img)
執行完上述代碼後,會生成一個名稱為new_test.jpg的新圖片文件。注意,使用imwrite()函數時要注意保存的文件格式,否則會導致圖片無法打開。
三、Python保存圖像函數
cv2.imwrite()函數適用於簡單的圖像處理需求,但對於需要在圖像上進行標註或加入文字的需求,需要使用cv2.putText()函數。該函數還可以設置字體、字型大小、顏色等參數,可根據自己需要進行調整。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 在圖像上添加字體
cv2.putText(img, 'Hello, World!', (10,100), cv2.FONT_HERSHEY_COMPLEX, 1, (255,255,255), 2)
# 將圖片保存
cv2.imwrite('new_test.jpg', img)
執行完上述代碼後,會在原圖像的左上角添加一行白色字體Hello, World!
四、Python保存圖像路徑
在保存圖像時,指定正確的保存路徑至關重要。可以使用OS模塊檢查當前目錄或創建新目錄,並在其中保存圖像文件。
import os
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 查找當前目錄
current_dir = os.getcwd()
# 新建目錄
newdir = 'saved_images'
if not os.path.exists(newdir):
os.mkdir(newdir)
# 保存圖像
filename = 'new_test.jpg'
newpath = os.path.join(current_dir, newdir, filename)
cv2.imwrite(newpath, img)
執行完上述代碼後,會在當前目錄下新建一個saved_images目錄,並將處理後的圖像保存至其中。
五、Python保存圖像後變模糊了
有時候,保存後的圖像會出現一些失真或變模糊的情況。這通常是由於圖像的保存格式不正確或缺少必要的參數引起的。解決方法是通過調整cv2.imwrite()函數中的參數來解決。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 保存圖像,並指定圖像質量
cv2.imwrite('new_test.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 90])
上述方法中,通過在imwrite()函數中增加選項cv2.IMWRITE_JPEG_QUALITY和相應的圖像質量參數(0-100),可以有效提高保存圖像的質量。
六、Python保存圖像無邊框
在保存圖像時,邊框常常會被誤認為是圖像的一部分,這會導致圖像保存時出現邊框。解決方法是使用cv2.copyMakeBorder()函數,對圖像進行處理,然後再進行保存。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 添加邊框
new_img = cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_CONSTANT,value=[0,0,0])
# 保存圖像
cv2.imwrite('new_test.jpg', new_img)
執行完上述代碼後,會在原圖像周圍添加一個10像素寬的黑邊框,並將處理後的圖像保存至指定目錄。
七、Python保存圖像為文件
如果需要將圖像保存為文件,則需要先將圖像轉換為二進位格式,再保存到指定文件中。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 將圖像轉換為二進位數據
retval, buffer = cv2.imencode('.jpg', img)
# 將二進位數據保存到文件中
with open('new_test.jpg', 'wb') as f:
f.write(buffer)
通過以上代碼,可以將處理後的圖像保存為文件,同時保留其較高的清晰度。
八、Python保存圖像為灰度圖
在一些圖像處理任務中,需要將圖像從彩色格式轉換為灰度格式。使用cv2.cvtColor()函數可以實現灰度圖像的轉換。
import numpy as np
import cv2
# 讀取圖片
img = cv2.imread('test.jpg')
# 將彩色圖像轉換為灰度圖像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 保存灰度圖像
cv2.imwrite('new_test.jpg', gray)
通過以上代碼,可以將原始的彩色圖像轉換為灰度圖像,並將其保存到文件中。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/303615.html