我有一組解析度非常低的圖片(在 .png 中,但我可以輕松地將它們轉換為其他格式)。它們都只有黑色或白色像素,如二維碼。
我想要的是能夠將它們作為二進制矩陣讀取(黑色像素為 1,白色像素為 0)。
我不需要比這更花哨的東西,我應該用什么?
uj5u.com熱心網友回復:
嗨,您可以使用 PIL 讀取影像,然后使用 numpy 將其轉換為矩陣
from PIL import Image
import numpy as np
im = Image.read("imageName.ext")
im_mat = np.asarray(im)
或者,您可以使用 opencv 一步完成所有操作
匯入 cv2
img = cv2.imread("imageName.ext")
在這兩種情況下,您都會有一個矩陣,其大小WxHxC為 H 以像素為單位的高度,W 為寬度,c 為通道數(3 或 4,取決于是否有透明度的 alpha)。
如果您的影像是黑白影像并且您只想要一個大小為WxH一個通道的矩陣
img = img_mat[:,:,0] #8-bit matrix
最后你可以二值化給出一個本影或者只是通過比較
bin = img> 128
或者
bin = img == 255
我更正了最后一行我有一個錯字
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358836.html
上一篇:如何使用python在opencv中通過某個標量影響某個區域的亮度?
下一篇:如何識別圖片下載大小?
