Bor*_*lik 4 python image image-processing python-imaging-library
我尝试使用python的PIL应用图像过滤器.代码很简单:
im = Image.open(fnImage)
im = im.filter(ImageFilter.BLUR)
Run Code Online (Sandbox Code Playgroud)
此代码在PNG,JPG和8位TIF上按预期工作.但是,当我尝试在16位TIF上应用此代码时,我收到以下错误
ValueError: image has wrong mode
Run Code Online (Sandbox Code Playgroud)
请注意,PIL能够在没有抱怨的情况下加载,调整大小并保存16位TIF,因此我假设此问题与过滤器相关.但是,ImageFilter文档没有提到16位支持
有什么办法可以解决吗?
Hug*_*lle 15
您的TIFF图像模式很可能是"I; 16".在当前版本的ImageFilter中,内核只能应用于"L"和"RGB"图像(参见ImageFilter.py的源代码)
尝试先转换为另一种模式:
im.convert('L')
Run Code Online (Sandbox Code Playgroud)
如果失败,请尝试:
im.mode = 'I'
im = im.point(lambda i:i*(1./256)).convert('L').filter(ImageFilter.BLUR)
Run Code Online (Sandbox Code Playgroud)
备注:Python和16 Bit Tiff可能重复
| 归档时间: |
|
| 查看次数: |
4598 次 |
| 最近记录: |