在過去的 4 天里,我一直在嘗試解決這個 Python 問題......我有一張黑白影像(.png 或 .jpg),例如:
![如何使用 Python 將影像轉換為 [1,0,0,1,0] 像素陣列?](https://img.uj5u.com/2022/06/10/891357cef83240e6a222bebf46bc5556.png)
我想加載它(我們稱之為“heart.png”)并將其轉換為以下陣列格式:
[1,1,0,1,1,1,0,1,1,1],
[1,0,0,0,1,0,0,0,1,1],
[0,1,1,1,0,1,1,1,0,1],
[0,1,1,1,1,1,1,1,0,1],
[0,1,1,1,1,1,1,1,0,1],
[0,1,1,1,1,1,1,1,0,1],
[1,0,1,1,1,1,1,0,1,1],
[1,1,0,1,1,1,0,1,1,1],
[1,1,1,0,0,0,1,1,1,1],
[1,1,1,1,0,1,1,1,1,1],
換句話說:我想分析每一行中的每一個像素并將其轉換為一個矩陣,將白色寫為“1”,黑色寫為“0”(或相反......沒關系,因為我可以反轉之前的顏色),像素之間用逗號分隔,每一行都應該用方括號括起來,也用逗號分隔。
我真的需要幫助,我認為 OpenCV 可以解決這個問題,但我不知道如何......
提前致謝!
uj5u.com熱心網友回復:
您可以使用 OpenCV 和 Numpy 來讀取影像,假設您的影像是只有黑白顏色的灰度影像。
import numpy as np
import cv2
img = cv2.imread("your-image-here.png", cv.IMREAD_GRAYSCALE) # The image pixels have range [0, 255]
img //= 255 # Now the pixels have range [0, 1]
img_list = img.tolist() # We have a list of lists of pixels
result = ""
for row in img_list:
row_str = [str(p) for p in row]
result = "[" ", ".join(row_str) "],\n"
如果您的影像比您在問題中發布的更復雜,那么您可能應該使用更高級的技術,例如閾值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488389.html
下一篇:Safari不會回退AVIF圖片
