最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python讀取二進(jìn)制文件的實(shí)例講解

 更新時(shí)間:2018年07月09日 11:11:23   作者:sh39o  
今天小編就為大家分享一篇使用Python讀取二進(jìn)制文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

目標(biāo):目標(biāo)文件為一個(gè)float32型存儲(chǔ)的二進(jìn)制文件,按列優(yōu)先方式存儲(chǔ)。本文使用Python讀取該二進(jìn)制文件并使用matplotlib.pyplot相關(guān)工具畫(huà)出圖像

工具:Python3, matplotlib,os,struct,numpy

1. 讀取二進(jìn)制文件

首先使用open函數(shù)打開(kāi)文件,打開(kāi)模式選擇二進(jìn)制讀取"rb"。

f = open(filename, "rb")

第二步,需要打開(kāi)按照行列讀取文件,由于是純二進(jìn)制文件,內(nèi)部不含郵任何的數(shù)據(jù)結(jié)構(gòu)信息,因此我們需要給定二進(jìn)制數(shù)據(jù)的行數(shù)列數(shù)(nx和ny)來(lái)確定圖像的形狀。這里我們的數(shù)據(jù)類(lèi)型是float32型的,對(duì)應(yīng)過(guò)來(lái)是4bytes,使用for循環(huán)逐個(gè)read4個(gè)字節(jié)。

for i in range(nx):
 for j in range(ny):
  data = f.read(4)

得到的結(jié)果如下:

b'5\x9d\x82\xc3'
b'\xb1\x04\x10\xc4'
b'\xc1\x9eD\xc4'
b'a\x86R\xc4'
b'\x15\x01=\xc4'

可以看到,讀入的數(shù)據(jù)為十六進(jìn)制數(shù),這個(gè)時(shí)候的數(shù)據(jù)并不能直接用來(lái)畫(huà)圖,需要轉(zhuǎn)換為float32型。這里使用struct.unpack來(lái)轉(zhuǎn)譯

data_float = struct.unpack("f", data)[0]

就可以得到正確的結(jié)果了

-261.2281799316406
-576.0733032226562
-786.4805297851562
-842.0996704101562
-756.0169067382812

建立一個(gè)numpy數(shù)組,將讀入的數(shù)據(jù)分別按列優(yōu)先的方式放入數(shù)組,就完成了圖像讀入的操作。

將上述操作包裝成函數(shù),代碼如下:

def xshow(filename, nx, nz):
 f = open(filename, "rb")
 pic = np.zeros((nx, nz))
 for i in range(nx):
  for j in range(nz):
   data = f.read(4)
   elem = struct.unpack("f", data)[0]
   pic[i][j] = elem
 f.close()
 return pic

2. 畫(huà)出圖像

這里我們的目的是將矩陣輸出灰度圖,并保存為tiff格式的圖像,效果圖如下(該圖為使用彈性波波動(dòng)方程在Marmousi模型下的波場(chǎng)快照):

不需要坐標(biāo)軸的信息,直接使用imsave命令,使用cmap選定顏色格式即可。

plt.imsave('output.tiff', img, format='tiff', cmap=plt.cm.gray)

如果使用PIL庫(kù)讀取圖像,可能會(huì)得到不同的效果,可能需要做直方圖均衡,目前還沒(méi)有找到原因。

以上這篇使用Python讀取二進(jìn)制文件的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python計(jì)算機(jī)視覺(jué)OpenCV入門(mén)講解

    python計(jì)算機(jī)視覺(jué)OpenCV入門(mén)講解

    這篇文章主要介紹了python計(jì)算機(jī)視覺(jué)OpenCV入門(mén)講解,關(guān)于圖像處理的相關(guān)簡(jiǎn)單操作,包括讀入圖像、顯示圖像及圖像相關(guān)理論知識(shí)
    2022-06-06
  • python中的django是做什么的

    python中的django是做什么的

    在本篇文章里小編給大家整理了關(guān)于python中的django作用以及相關(guān)基礎(chǔ)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2020-07-07
  • numpy中的transpose函數(shù)中具體使用方法

    numpy中的transpose函數(shù)中具體使用方法

    本文主要介紹了numpy中的transpose函數(shù)中具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python實(shí)現(xiàn)自動(dòng)化的sql延時(shí)注入

    python實(shí)現(xiàn)自動(dòng)化的sql延時(shí)注入

    這篇文章主要為大家詳細(xì)介紹了如何基于python實(shí)現(xiàn)自動(dòng)化的sql延時(shí)注入腳本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 用Python寫(xiě)一個(gè)球球大作戰(zhàn)小游戲

    用Python寫(xiě)一個(gè)球球大作戰(zhàn)小游戲

    這篇文章主要介紹了如何用Python寫(xiě)一個(gè)球球大作戰(zhàn)小游戲,我們需要實(shí)現(xiàn)每位玩家操控一個(gè)可自由移動(dòng)的小球球,通過(guò)滑動(dòng)屏幕,你可以指揮自己的球球在地圖上四處游走,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python3實(shí)現(xiàn)發(fā)送QQ郵件功能(文本)

    Python3實(shí)現(xiàn)發(fā)送QQ郵件功能(文本)

    這篇文章主要為大家詳細(xì)介紹了Python3實(shí)現(xiàn)發(fā)送QQ郵件功能,文本方面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python文件讀取的3種方法及路徑轉(zhuǎn)義

    Python文件讀取的3種方法及路徑轉(zhuǎn)義

    這篇文章主要介紹了Python文件讀取的3種方法及路徑轉(zhuǎn)義,本文分別給出讀取文件的代碼實(shí)例,最后講解了路徑轉(zhuǎn)義的相關(guān)知識(shí)、小技巧,需要的朋友可以參考下
    2015-06-06
  • 獨(dú)立進(jìn)程使用django模型及django.setup()使用

    獨(dú)立進(jìn)程使用django模型及django.setup()使用

    這篇文章主要介紹了獨(dú)立進(jìn)程使用django模型(django.setup()使用),它提供了一種簡(jiǎn)單且高效的方式來(lái)利用Django強(qiáng)大的功能,并使你的代碼更易于維護(hù)和擴(kuò)展,需要的朋友可以參考下
    2023-07-07
  • Python實(shí)現(xiàn)的最近最少使用算法

    Python實(shí)現(xiàn)的最近最少使用算法

    這篇文章主要介紹了Python實(shí)現(xiàn)的最近最少使用算法,涉及節(jié)點(diǎn)、時(shí)間、流程控制等相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • python正則表達(dá)式re.group()用法

    python正則表達(dá)式re.group()用法

    本文主要介紹了python正則表達(dá)式re.group()用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論

镇沅| 韶关市| 象山县| 亳州市| 五指山市| 沅江市| 凤翔县| 和静县| 和静县| 平度市| 江源县| 金华市| 巴马| 界首市| 大厂| 额尔古纳市| 湟中县| 通海县| 邢台市| 舟曲县| 横山县| 永春县| 榕江县| 盈江县| 昭苏县| 孟津县| 西平县| 哈巴河县| 长丰县| 云安县| 宜昌市| 十堰市| 武夷山市| 鄢陵县| 湘阴县| 新野县| 望谟县| 宝兴县| 麟游县| 连江县| 嘉义市|