簡體   English   中英

將 numpy 數組數據矩陣代碼轉換為文本

[英]convert numpy array data matrix code to text

假設我有一個 numpy 數組

[[1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0]
 [1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1]
 [1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0]
 [1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1]
 [1 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0]
 [1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1]
 [1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0]
 [1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1]
 [1 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0]
 [1 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1]
 [1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 0]
 [1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1]
 [1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0]
 [1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1]
 [1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 0]
 [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]]

這基本上是來自自定義代碼的已經破譯的數據矩陣代碼......我如何輕松地將其轉換為文本?

我嘗試使用 pylibdmtx 庫,但失敗了:

from pylibdmtx.pylibdmtx import decode, encode

decode((myarray.tobytes(), 16, 16))

我顯然可以使用 matplotlib 使用 imshow 將其保存到文件中。 將其作為圖像讀入並在圖像上使用解碼 function,但由於我已經擁有 16x16 解碼部分,因此我想提高效率。 是否有一個簡單的 python 實現可用於此?

我解決了。 問題是這樣的: A: pylibdmtx decode function 需要在至少 2 個空行的代碼周圍設置一個邊界。 B:每個值至少需要兩個像素,因此您需要升級 numpy 數組,例如:1 1 1 1 而不是 1

C:你需要一個值 255 而不是 1 並且你需要確保數據類型設置為 uint8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM