代码在这很简单,最初也成功过,现在又不行了,我用了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))#%%输出%号
报错如下图