图像灰度直方图用来统计0到255的各灰度值在图像中的出现频次,也就是有多少个像素的值为0,多少个像素的值为1,等等。对于彩色图像,直方图为红、绿、蓝各分量的统计结果。

from os.path import isfile

from PIL import Image

def his(imageFile):

#确保参数为图像文件

assert isfile(imageFile) and imageFile.endswith(('.bmp', '.jpg', '.png')), 'Must be image file'

#打开图像文件

im = Image.open(imageFile)

#获取图像颜色深度

c = im.getpixel((0,0))

#默认为彩色图像

flag = False

#灰度图像

if isinstance(c, int):

flag = True

r = [0] * 256

g = [0] * 256

b = [0] * 256

#获取图像尺寸

width, height = im.size

for w in range(width):

for h in range(height):

#读取像素颜色,并统计各分量值的频次

c = im.getpixel((w,h))

if flag:

r[c] += 1

else:

r[c[0]] += 1

g[c[1]] += 1

b[c[2]] += 1

if flag:

return r

else:

return r+g+b

def his1(imageFile):

#真正使用时建议直接直接使用pillow库中Image对象的histogram()获取直方图

im = Image.open(imageFile)

return im.histogram()

print(his('6.jpg')==his1('6.jpg'))

图像直方图原理与Python实现相关推荐

  1. 图像直方图均衡化算法 python实现

    一. 直方图均衡化: 直方图均衡化是使图像直方图变得平坦的操作.直方图均衡化能够有效地解决图像整体过暗.过亮的问题,增加图像的清晰度. 具体流程如下所示.其中S是总的像素数,Zmax是像素的最大取值( ...

  2. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

  3. python图像直方图与直方图均衡化

    图像直方图以及灰度与彩色图像的直方图均衡化 图像直方图: 图像的直方图用来表征该图像像素值的分布情况.用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目 ...

  4. 【Python OpenCV】图像直方图 calcHist方法 equalizeHist方法

    [Python OpenCV]图像直方图 calcHist方法 equalizeHist方法 (一)图像直方图 图像的构成是有像素点构成的,每个像素点的值代表着该点的颜色(灰度图或者彩色图).所谓直方 ...

  5. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  6. Python实现图像直方图均衡化算法

    title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...

  7. python画简便的图片-用python简单处理图片(5):图像直方图

    我们先来看两个函数reshape和flatten: 假设我们先生成一个一维数组: vec=np.arange(15) print vec 显示为: [ 0 1 2 3 4 5 6 7 8 9 10 1 ...

  8. 什么是图像直方图直方图均衡的原理和作用图像信噪比的概念

    图像直方图:图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的.纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比. 图像是由像素 ...

  9. Python实现图像直方图规定化(直方图匹配)-附完整代码

    以下内容需要直方图均衡化.规定化知识 均衡化:https://blog.csdn.net/macunshi/article/details/79815870 规定化:https://blog.csdn ...

最新文章

  1. 5月第3周业务风控关注 |网信办公布整治教育类应用的成果 关闭“作业狗”等20余款应用...
  2. android 人生日历,android版人生日历日子怎么用 安卓版人生日历日子使用教程
  3. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 四 | View 事件传递机制 )
  4. java终止线程的三种方法
  5. 解决Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), ple..
  6. 2019公众号总结之——Top100 技术文章汇总
  7. spring-security-学习笔记-02-基于Session的认证方式
  8. HTML5中的自定义属性总结
  9. 苹果试图将AirPods打造成健康产品 可监测体温和姿势
  10. 网络协议从入门到底层原理(9)HTTP/1.1的升级改进(HTTP/2、HTTP/3)
  11. MongoDB:MapReduce基础及实例
  12. asp数据分页显示技术(上下页版)
  13. SpringMVC Ⅰ
  14. 车辆路径问题(VRP)初探
  15. OSPF认证、虚链路、过滤、track
  16. 网课答案接口 查题系统
  17. python scapy 抓包_Python3下基于Scapy库完成网卡抓包解析
  18. c语言美元转换人民币的程序,【其它】编程题: 1.编写一个人民币和美元的双向汇率转换程序,实现美元和人民币转换,汇率:1美元=6.92人民币...
  19. 基于Echarts+HTML5可视化数据大屏展示—大数据统计展示大屏
  20. 常用RL算法的主要特性

热门文章

  1. php代理请求失败,http请求失败有哪些原因
  2. java用对话框输出计算结果_Java怎么实现输入一个string表达式然后输出计算的结果...
  3. 北邮 复习 软件工程_软件工程专业最厉害的32所大学,共分4个档次,第一档当之无愧!...
  4. win10家庭版远程桌面_win10 家庭版使用RDPWrap开通远程桌面服务
  5. java 图像边界识别_图像识别原理之如何识别图像边缘
  6. matlab fwrite 多字节,单片机多字节串口接收
  7. android自定义组合view,安卓自定义view之组合view
  8. mysql主从复制同步实验_db.mysql.主从同步实验
  9. devc运行不出窗口_足不出户“云出庭”?沾化“智慧检务”让法律监督“不打烊...
  10. python3.9新特性_Python3.9又更新了:dict内置新功能