簡體   English   中英

Python'rawpy._rawpy.RawPy'對象在第二遍之后沒有屬性'imread'

[英]Python 'rawpy._rawpy.RawPy' object has no attribute 'imread' after second pass

我嘗試處理一系列DNG原始圖片文件,並且對於第一遍(第一批fils)來說一切都很好。 當我嘗試通過for-next循環進行第二次讀取第二個DNG文件時,在執行帶有raw.imread(file)的行時收到錯誤消息“ rawpy._rawpy.RawPy”對象沒有屬性“ imread” )作為原始文件:”。

import numpy as np
import rawpy as raw
import pyexiv2

from scipy import stats
for file in list:
    metadata = pyexiv2.ImageMetadata(file)
    metadata.read()
    with raw.imread(file) as raw:
       rgb16 = raw.postprocess(gamma=(1,1), no_auto_bright=True, output_bps=16)
       avgR=stats.describe(np.ravel(rgb16[:,:,0]))[2]
       avgG=stats.describe(np.ravel(rgb16[:,:,1]))[2]
       avgB=stats.describe(np.ravel(rgb16[:,:,2]))[2]
   print i,file,'T=', metadata['Exif.PentaxDng.Temperature'].raw_value,'C',avgR,avgG,avgB
   i+=1

我已經嘗試關閉原始對象,但是通過谷歌搜索,我了解到使用上下文管理器時沒有必要。 幫助或建議非常歡迎。 提前致謝。

您正在用正在讀取的圖像覆蓋rawpy模塊的別名( raw )。 這意味着您將在第二遍循環中得到一個錯誤。

import rawpy as raw      # here's the first thing named "raw"
#...

for file in list:
    #...

    with raw.imread(file) as raw:    # here's the second
        #...

為變量之一選擇一個不同的名稱,您的代碼應該可以工作。

暫無
暫無

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

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