`
san_yun
  • 浏览: 2655717 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

使用PIL计算直方图并显示

    博客分类:
  • PIL
 
阅读更多

什么是直方图?

直方图就是统计图像中像素点为某个颜色值的个数。
下面是python代码

# -*- coding: utf-8 -*-
from PIL import Image
from PIL import ImageDraw
im = Image.open('code1.png')
im = im.convert('L')
width, height = im.size
pix = im.load()
a = [0]*256
for w in xrange(width):
	for h in xrange(height):
		p = pix[w,h]
		a[p] = a[p] + 1

s = max(a)
print a,len(a),s 	#长度256,a保存的分别是颜色范围0-255出现的次数
image = Image.new('RGB',(256,256),(255,255,255))  
draw = ImageDraw.Draw(image)  

for k in range(256):
	#print k,a[k],a[k]*200/s
	a[k] = a[k]*200/s		#映射范围0-200
	source = (k,255)   		#起点坐标y=255, x=[0,1,2....]
	target = (k,255-a[k])	#终点坐标y=255-a[x],a[x]的最大数值是200,x=[0,1,2....]
	draw.line([source, target], (100,100,100))
image.show()

 例子分别是经典的雷娜图和纯图的直方图统计

 

 

  • 大小: 214.3 KB
  • 大小: 168.4 KB
分享到:
评论

相关推荐

    图像灰度直方图

    例如,在OpenCV中,可以使用`cv2.calcHist()`函数来计算直方图,然后用`cv2.imshow()`显示结果。 通过分析1.灰度直方图这个文件,我们可以深入探讨图像的灰度分布,理解其特征并进行相应的图像处理操作。在具体的...

    bmp图像直方图处理

    分析这样的例子可以帮助我们更好地理解直方图处理的实践过程,包括如何计算直方图、如何应用上述操作以及观察处理前后图像的差异。 总的来说,直方图处理是图像分析的基础,它提供了理解图像特性、优化视觉效果和...

    显示图像直方图

    # 计算直方图的累积分布函数(CDF) cdf = hist.cumsum() cdf_normalized = cdf * hist.max() / cdf.max() # 绘制直方图 plt.plot(cdf_normalized, color='b') plt.hist(gray_image.getdata(), bins=256, histtype='...

    图像灰度化和直方图显示

    在“SimpleImageProcess(灰度和直方图显示)”这个项目中,你可能会学习到如何使用编程语言(如Python的PIL或OpenCV库)实现这些功能。首先,你将编写代码将RGB图像转换为灰度图像,然后计算并绘制出该灰度图像的...

    统计bmp图片直方图,边缘检测

    为了实现这个功能,可以使用如Python的PIL(Pillow)库来读取和显示BMP图片,使用numpy计算直方图,以及OpenCV库进行边缘检测。首先,读取BMP文件并将其像素值存储在一个数组中,然后计算直方图,这可以通过统计每个...

    数字图像处理直方图均衡化

    2. **累积分布函数(CDF)**:接着,我们计算直方图的累积分布函数,即累计所有小于或等于某个灰度级的像素数量,然后除以图像的总像素数,得到的是该灰度级对应的概率。 3. **非线性映射**:根据累积分布函数,我们...

    zhifangtu.rar_zhifangtu _直方图显示

    2. **计算直方图**:对每个像素的亮度值进行计数,得到直方图数据。 3. **绘制直方图**:利用图形库(如matplotlib、Qt等)绘制直方图,设置合适的坐标轴范围和刻度。 4. **显示界面**:创建一个用户界面,将直方图...

    图像处理(直方图显示,滤波等)

    在图像处理领域,直方图显示、滤波和图像读取是基础且至关重要的操作。这些技术广泛应用于图像分析、图像增强、计算机视觉以及机器学习等诸多领域。下面将详细阐述这些知识点。 首先,图像读取是图像处理的第一步。...

    读取tif格式文件代码可进行直方图和二值化

    # 计算直方图 hist, bins = plt.hist(pixels, bins=256, range=(0, 256)) # 绘制直方图 plt.xlabel('灰度值') plt.ylabel('频数') plt.title('图像直方图') plt.show() ``` 直方图分析可以帮助我们理解图像的亮度...

    直方图显示代码及测试图片

    这个代码可能是一个库或者一个独立的脚本,其功能可能是读取图像数据,计算直方图,并将直方图可视化。直方图的可视化通常包括绘制矩形条形,以及可能的坐标轴标注、标题和颜色映射。 代码实现可能基于Python的PIL...

    绘制RGB三色直方图

    在实际编程实现中,可能会使用图像处理库,如Python的PIL(Python Imaging Library)或OpenCV,它们提供了便捷的接口来读取、处理和绘制RGB图像的直方图。开发者需要注意处理边界情况,比如透明度(Alpha通道)和非...

    图形处理 直方图均衡化和一维二维otsu

    2. 计算直方图:对图像的每个像素进行统计,得到各个灰度值的出现次数。 3. 计算一维/二维CDF:根据直方图数据,计算累计出现的概率。 4. 映射新的灰度值:使用CDF映射原图像的灰度值,实现均衡化。 5. Otsu二值化:...

    数字图像处理 直方图

    hist, bins = np.histogram(image.flatten(), 256, [0,256]) # 计算直方图 plt.plot(bins[:-1], hist) # 绘制直方图 plt.show() ``` 综上所述,直方图作为图像分析的基础工具,能够揭示图像的亮度分布,而图像显示...

    Python-hmap图像直方图映射

    # 计算直方图 hist, bins = np.histogram(img.flatten(), 256, [0, 256]) # 执行直方图均衡化 eq_hist = cv2.equalizeHist(img) # 显示原图和处理后的图像 cv2.imshow('Original Image', img) cv2.imshow('...

    PIL库,图片库

    3. **图像分析**:可以进行像素级别的访问,进行像素强度统计、直方图分析等。 4. **图像增强**:PIL库提供了一些图像增强功能,如对比度调整、亮度调整、锐化等。 5. **文本处理**:可以在图像上添加文本,支持...

    灰度直方图的均衡化

    源代码可能会使用如Python的PIL库或者OpenCV库,通过读取图像,计算直方图,然后进行上述的灰度级映射操作,最后显示原图和均衡化后的图像对比,以便观察效果。 总的来说,灰度直方图均衡化是一种有效的图像预处理...

    erzhihua.rar_局部直方图

    如果要深入理解和应用这些代码,需要具备一定的编程基础,例如Python、MATLAB等,并熟悉OpenCV、PIL等图像处理库,以便进行图像读取、操作和显示。 总的来说,局部直方图阈值法是一种强大的图像处理技术,通过分析...

    QChart实现自适应图像调节(线性变化)

    在实际操作中,我们可以封装一个函数,接受16位图像作为输入,首先计算直方图,然后根据直方图数据构造分段函数,最后将图像数据应用这个函数,实现从16位到8位的转换。这个过程需要注意保持图像的视觉质量,避免...

    已编译的PIL模块

    6. 图像分析:可以计算图像的统计特性,如亮度、对比度、直方图等。 7. 文字与图形绘制:PIL的`ImageDraw`模块可以用来在图像上绘制文本、线条、形状等。 8. 合成与蒙版:可以将多张图像进行合成操作,也可以使用...

    PIL模块学习

    Image模块是PIL模块的核心模块,提供了创建、打开、显示、保存图像等功能,合成、裁剪、滤波等功能,获取图像属性功能,如图像直方图、通道数等。Image模块是PIL模块的基础模块,其他模块都是基于Image模块的。 ...

Global site tag (gtag.js) - Google Analytics