Python 'rawpy._rawpy.RawPy'对象在第二次传递后没有属性'imread'



我尝试处理一系列DNG原始图片文件,并且对于第一遍(第一遍(来说一切正常。当我尝试在第二次通过 for-next 循环期间读取第二个 DNG 文件时,我收到错误消息"rawpy._rawpy。RawPy' 对象在执行行 "with raw.imread(file( as raw:"时没有属性 '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
        #...

为其中一个变量选择不同的名称,您的代码应该可以工作。

相关内容

  • 没有找到相关文章

最新更新