python 基于numpy和PIL的图像局部熵计算方法
来源:互联网 发布:adobe 3d软件 编辑:程序博客网 时间:2024/05/16 08:06
参考matlab中图像局部熵的计算方法,改写为python。为检验将影像局部熵转化为灰度后的正确性,采用鼠标取点检验的方法。并将熵以灰度图像输出保存。
#-*- coding:utf-8 -*-from numpy import *from pylab import *from PIL import ImageI=Image.open('123.jpg').convert('L')I1=I.resize((100,100)) #实验采样Im=array(I1)m,n=Im.shapeIm2=zeros(Im.shape)k=3for i in range(k,m-k): for j in range(k,n-k): his = zeros(256) for p in range(i-k,i+k+1): for q in range(j-k,j+k+1): his[Im[p,q]]=his[Im[p,q]]+1 his1=his/float(sum(his)) for g in range(0,256): if his1[g]!=0: Im2[i,j]=Im2[i,j]-his1[g]*log(his1[g])Im3=zeros(Im.shape) #Im3为将熵进行归一化处理Im4=zeros(Im.shape) #Im4为熵转换成灰度图像Im5=zeros(Im.shape) #Im5为二值图像,阈值为200maxa=amax(Im2)mina=amin(Im2)for i in range(0,m): for j in range(0,n): if (maxa-mina)!=0: Im3[i,j]=(Im2[i,j]-mina)/(maxa-mina) else: Im3[i,j]=1 Im4[i,j]=uint(Im3[i,j]*255) if Im4[i,j]>=200: Im5[i,j]=1 else: Im5[i,j]=0t=imshow(Im4)plt.colorbar(t)print 'Please click a point' #鼠标取值x=ginput(3)for w in range(0,3): print w,'times,you clicked:',x[w][0],x[w][1],Im4[x[w][0],x[w][1]]show()Im6=Image.fromarray(uint8(Im4))Im6.save('123_ent.jpg')实验结果如下图所示:上图为原始图像,下图为局部熵。
1 0
- python 基于numpy和PIL的图像局部熵计算方法
- Python基于Numpy和PIL库的PCA人脸识别
- 使用 numpy 和 PIL 进行简单的图像处理
- python基于PIL和tesseract的验证码识别
- Python基于scipy和PIL的Harris角点检测
- Python、Numpy、Matplotlib、PIL安装
- 采用感知哈希算法基于python-PIL的图像去重
- python图像融合(基于PIL image库)
- python图像融合(基于PIL Image模块)
- Python PIL图像处理-----图像的手绘效果
- 基于python和numpy的KNN手写识别
- 基于Python和Numpy的主成分分析
- 利用Python PIL、cPickle读取和保存图像数据库
- 利用Python PIL、cPickle读取和保存图像数据库
- 利用Python PIL、cPickle读取和保存图像数据库
- 利用Python PIL、cPickle读取和保存图像数据库
- 利用Python PIL、cPickle读取和保存图像数据库
- Python 使用PIL numpy 实现拼接图片
- Java 解惑:Comparable 和 Comparator 的区别
- 观察者模式的使用
- 大数据运营(二)
- Linux yum 升级mysql
- Java 解惑:Comparable 和 Comparator 的区别
- python 基于numpy和PIL的图像局部熵计算方法
- 百度uedit禁止转义及关于模板语言 Mustache
- Sublime text安装以及常用插件
- Android 基础面试题(一)
- 尺取法(1)
- javascript面相对象编程
- ural1005 Stone Pile (枚举)
- 二分练习
- Java对象排序、中文排序、SortedSet排序使用和源码讲解