Python 'rawpy._rawpy.RawPy' 对象在第二遍后没有属性 'imread'
Python 'rawpy._rawpy.RawPy' object has no attribute 'imread' after second pass
我尝试处理一系列 DNG 原始图片文件,第一遍(first fils)都运行良好。当我尝试在第二次通过 for-next 循环期间读取第二个 DNG 文件时,在执行行 "with raw.imread(file) as raw:" 时收到错误消息 'rawpy._rawpy.RawPy' object has no attribute '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
#...
为其中一个变量选择一个不同的名称,您的代码应该可以工作。
我尝试处理一系列 DNG 原始图片文件,第一遍(first fils)都运行良好。当我尝试在第二次通过 for-next 循环期间读取第二个 DNG 文件时,在执行行 "with raw.imread(file) as raw:" 时收到错误消息 'rawpy._rawpy.RawPy' object has no attribute '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
#...
为其中一个变量选择一个不同的名称,您的代码应该可以工作。