0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python將二維數組輸出為圖片

jf_96884364 ? 來源:jf_96884364 ? 作者:jf_96884364 ? 2023-01-11 16:18 ? 次閱讀

原文鏈接

使用Python讀取二維數組,將二維數組輸出為圖片,并保存在本地。

代碼如下:

# coding=utf8
from PIL import Image
import numpy as np
import imageio
import matplotlib.pyplot as pyplot

a = 300
b = 500
x = 20
y = 20
w = 40
h = 80

# 生成圖片矩陣
def Gener_mat(a, b, x, y, w, h):
    img_mat = np.zeros((a, b), dtype=np.int_)
    for i in range(0, a):
        for j in range(0, b):
            img_mat[i][j] = 0
    for i in range(x, x + w):
        for j in range(y, y + h):
            img_mat[i][j] = 1
    return img_mat


# 輸出圖片
def out_img(data):
    data = (data * 255.0).astype('uint8')  # 轉換數據類型
    new_im = Image.fromarray(data)  # 調用Image庫,數組歸一化

    # 顯示新圖片
    pyplot.imshow(data)
    pyplot.show()

    # 保存圖片到本地
    imageio.imsave('new_img.jpg', new_im)


img_mat = Gener_mat(a, b, x, y, w, h)
out_img(img_mat)

其中 Gener_mat 函數用于生成一個300*500的矩陣,矩陣大部分值為0,在坐標(20, 20)處有一個40*80的區(qū)域,值為1。

矩陣轉為的圖片保存在與代碼同級的目錄下,圖片為:

如果不能正常顯示圖片,出現報錯:

MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6 and will be removed two minor releases later.

是Pycharm設置的問題。點擊菜單欄 File——Setting——Tools——Python Scientific,取消勾選“Show plots in tool window”,然后點擊右下角的“OK”,即可完成配置。再次啟動,就能正常顯示了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4788

    瀏覽量

    68612
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84689
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    25947
收藏 人收藏

    評論

    相關推薦

    RS232接口的二維影像掃描引擎,廣泛用在醫(yī)療設備上掃一二維

    在醫(yī)療設備領域,二維碼的應用日益廣泛,它作為信息的快速傳遞和識別手段,醫(yī)療管理、患者追蹤、設備維護等環(huán)節(jié)帶來了極大的便利。而在這背后,RS232接口的二維影像掃描引擎扮演著至關重要的角色,它以
    的頭像 發(fā)表于 12-23 16:02 ?95次閱讀
    RS232接口的<b class='flag-5'>二維</b>影像掃描引擎,廣泛用在醫(yī)療設備上掃一<b class='flag-5'>維</b><b class='flag-5'>二維</b>碼

    二維內嵌掃碼模組用于自助儲物柜,快速掃描各種一二維條碼

    隨著科技的飛速發(fā)展,自助儲物柜已成為我們日常生活中不可或缺的一部分,公眾提供了極大的便利。而這一切的背后,離不開二維內嵌掃碼模組的強大支持。本文深入探討二維內嵌掃碼模組在自助儲物柜
    的頭像 發(fā)表于 12-04 15:56 ?113次閱讀
    <b class='flag-5'>二維</b>內嵌掃碼模組用于自助儲物柜,快速掃描各種一<b class='flag-5'>維</b><b class='flag-5'>二維</b>條碼

    指針數組二維數組有沒有區(qū)別

    指針數組二維數組有沒有區(qū)別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發(fā)表于 11-24 11:12 ?151次閱讀

    二維碼識讀設備有哪些類型

    隨著二維碼應用的日益普及,各類二維碼識讀設備也應運而生。這些設備不僅極大地方便了我們的日常生活,也企業(yè)提供了更加高效便捷的服務。那么,你知道二維碼識讀設備都有哪些類型嗎?讓我們一起來
    的頭像 發(fā)表于 11-05 16:10 ?189次閱讀
    <b class='flag-5'>二維</b>碼識讀設備有哪些類型

    labview按行讀取二維數組之后再按讀取順序重新組成二維數組如何實現?

    labview用了index Array按索引一行行讀取二維數組之后想再按讀取順序重新組成一個二維數組如何實現,即第一次讀取的作為第一行,第
    發(fā)表于 10-25 21:06

    請問labview是否無法向matlab傳遞3數組

    經過一些測試,發(fā)現在matlab script中只能傳二維數組,利用打包.net庫,好像還是只能傳遞二維數組。 是不是從底層就不支持,這兩種語言的三
    發(fā)表于 10-22 20:14

    二維力傳感器怎么安裝,在安裝二維力傳感器的安裝步驟

    二維力傳感器是一種精密的測量設備,用于檢測物體在平面內的力和力矩。為了確保其測量結果的準確性和穩(wěn)定性,正確的安裝步驟至關重要。本文詳細介紹二維力傳感器的安裝方法。
    的頭像 發(fā)表于 09-27 17:14 ?324次閱讀
    <b class='flag-5'>二維</b>力傳感器怎么安裝,在安裝<b class='flag-5'>二維</b>力傳感器的安裝步驟

    如何為柜式終端設備選配(集成)二維碼模塊?

    隨著二維碼技術在各行各業(yè)的廣泛應用,柜式終端設備如何高效集成二維碼模塊成為行業(yè)關注焦點。針對這一需求,本文深入探討選擇與集成二維碼模塊的關鍵要素,助力企業(yè)精準匹配,提升終端設備性能。
    的頭像 發(fā)表于 08-05 15:48 ?277次閱讀
    如何為柜式終端設備選配(集成)<b class='flag-5'>二維</b>碼模塊?

    Labview生成二維

    ?Labview 的一個Demo,生成二維碼。
    發(fā)表于 08-01 17:12 ?7次下載

    技術|二維PDOA平面定位方案

    一、方案概述二維平面定位系統,采用UWB定位技術,精度可到30cm。通過PDOA算法,可實現單基站二維平面的實時人員定位,增強對危險區(qū)域的管控,有效預防安全事故發(fā)生。面對突發(fā)情況,能做到及時報警響應
    的頭像 發(fā)表于 06-04 14:53 ?935次閱讀
    技術|<b class='flag-5'>二維</b>PDOA平面定位方案

    二維PDMA可以使用描述符鏈嗎?

    我正在嘗試使用二維描述符連鎖。 編寫了一些二維描述符鏈的代碼。 但我有一些疑問,比如 1.二維 PDMA 可以使用描述符鏈嗎? 2.如果 1 是,請附上一些代碼 我們是否可以使用 2 個結構或只使用 1 個結構即可。
    發(fā)表于 05-31 08:16

    數組的轉換到二維數組后的行列增減問題

    請大佬指點,如VI,兩個求助點: 1、一數組大小,在停止Vi前把數組大小增加到4,在循環(huán)外設置了一數組的行數
    發(fā)表于 05-11 00:25

    飛凌嵌入式ElfBoard ELF 1板卡-在線二維碼生成器

    在線二維碼生成器允許用戶文本、網址、圖片或其他數據轉換為二維碼形式。二維碼是一種特殊類型的條形碼,它可以通過掃描來快速識別和讀取信息。在線
    發(fā)表于 04-24 17:00

    怎么在Framewin里顯示二維碼?

    各位前輩好,剛剛開始使用STemWin。現在一個Framewin里顯示二維碼,在Framewin初始化里調用二維碼函數沒有反應。請問需要怎么調用?
    發(fā)表于 04-16 08:27

    二維圖片框 在 鼠標處 滾輪 縮放 圖片,像 CAD 一樣,,

    大家好,如何實現,二維圖片框 在 鼠標處 滾輪 縮放 圖片,像 CAD 一樣,,*附件:圖片在鼠標處縮放.rar
    發(fā)表于 01-07 21:02