li2505601
li2505601
2015-10-11 15:04

python小程序将 .tif格式图像转换为灰度图但一直报错,求高手解答

12
  • python
  • 图片
  • 代码

代码在这很简单,最初也成功过,现在又不行了,我用了PIL和libtiff,但为什么arcpy.Minus只能存储为.tif?而且再次读入.tif文件时又一直报错,报错截图在最后,麻烦大神们了!

-*- coding: utf-8 -*-

from PIL import Image

from PIL import ImageDraw

from libtiff import TIFF
import arcpy
from arcpy import env
env.workspace = "E:\work\cppservice\RasterCalc" #工作空间
inRaster1 = "E:\2013.png"
inRaster2 = "E:\2020.png"
arcpy.CheckOutExtension("3D")
arcpy.Minus_3d(inRaster1,inRaster2,"E:\w.tif")#minus代表两幅图像相减,输出目前看来只能是tif格式,为什么?
im = Image.open('E:/w.tif') #再打开tif图像
im = im.convert('L')#彩图转换为灰度图
width, height = im.size#以下为统计像素点的值
pw = width
pix = im.load()
a = [0.00]*3 #计算三种值的像素个数
for w in xrange(width):

for h in xrange(height):

p = pix[w,h]
if p > 220:
a[0]+=1
elif p < 35:
a[1]+=1
else:
a[2]+=1

print ("剧烈变化地区所占百分比: %.3f %%"%(a[0]/(width*height)*100))
print ("无变化区域所占百分比: %.3f %%"%(a[1]/(width*height)*100))
print ("适度变化区域百分比: %.3f %%"%(a[2]/(width*height)*100))#%%输出%号
报错如下图
图片说明

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答