python画简便的图片-用python简单处理图片(5):图像直方图
我们先来看两个函数reshape和flatten:
假设我们先生成一个一维数组:
vec=np.arange(15)
print vec
显示为:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
如果我们要把这个一维数组,变成一个3*5二维矩阵,我们可以使用reshape来实现
mat= vec.reshape(3,5)
print mat
显示为
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
现在如果我们返过来,知道一个二维矩阵,要变成一个一维数组,就不能用reshape了,只能用flatten. 我们来看两者的区别
a1=mat.reshape(1,-1) #-1表示为任意,让系统自动计算
print a1
a2=mat.flatten()
print a2
显示为:
a1: [[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]]
a2: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
可以看出,用reshape进行变换,实际上变换后还是二维数组,两个方括号,因此只能用flatten.
我们要对图像求直方图,就需要先把图像矩阵进行flatten操作,使之变为一维数组,然后再进行统计。
一、画灰度图直方图
绘图都可以调用matplotlib.pyplot库来进行,其中的hist函数可以直接绘制直方图。
调用方式:
n, bins, patches = plt.hist(arr, bins=50, normed=1, facecolor='green', alpha=0.75)
hist的参数非常多,但常用的就这五个,只有第一个是必须的,后面四个可选
arr: 需要计算直方图的一维数组
bins: 直方图的柱数,可选项,默认为10
normed: 是否将得到的直方图向量归一化。默认为0
facecolor: 直方图颜色
alpha: 透明度
返回值 :
n: 直方图向量,是否归一化由参数设定
bins: 返回各个bin的区间范围
patches: 返回每个bin里面包含的数据,是一个list
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open('d:/pic/lena.jpg').convert('L'))
plt.figure("lena")
arr=img.flatten()
n, bins, patches = plt.hist(arr, bins=256, normed=1, facecolor='green', alpha=0.75)
plt.show()
二、彩色图片直方图
实际上是和灰度直方图一样的,只是分别画出三通道的直方图,然后叠加在一起。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
src=Image.open('d:/ex.jpg')
r,g,b=src.split()
plt.figure("lena")
ar=np.array(r).flatten()
plt.hist(ar, bins=256, normed=1,facecolor='r',edgecolor='r',hold=1)
ag=np.array(g).flatten()
plt.hist(ag, bins=256, normed=1, facecolor='g',edgecolor='g',hold=1)
ab=np.array(b).flatten()
plt.hist(ab, bins=256, normed=1, facecolor='b',edgecolor='b')
plt.show()
由此可见,matplotlib的画图功能是非常强大的,直方图只是其中非常小的一部分,更多的请参看官方文档:
http://matplotlib.org/api/pyplot_summary.html
用python简单处理图片(4):图像中的像素访问
前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然后直接对这个PIL对象进行操作.如果只是简单的操作还可以,但是如果操作稍微复杂一些,就比较吃力了.因此,通常我们加载完图片后,都 ...
用python简单处理图片(1):打开\显示\保存图像
一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此, ...
用python简单处理图片(2):图像通道\几何变换\裁剪
一.图像通道 1.彩色图像转灰度图 from PIL import Image import matplotlib.pyplot as plt img=Image.open('d:/ex.jpg') ...
用python简单处理图片(3):添加水印
python版本:3.4 Pillow版本:3.0 一.添加文字水印 from PIL import Image, ImageDraw,ImageFont im = Image.open(" ...
Python 图像处理 OpenCV (16):图像直方图
前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...
Python实现图像直方图均衡化算法
title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...
Python+OpenCV图像处理(八)—— 图像直方图
直方图简介:图像的直方图是用来表现图像中亮度分布的直方图,给出的是图像中某个亮度或者某个范围亮度下共有几个像素.还不明白?就是统计一幅图某个亮度像素数量.比如对于灰度值12,一幅图里面有2000 个像 ...
opencv python:图像直方图 histogram
直接用matplotlib画出直方图 def plot_demo(image): plt.hist(image.ravel(), 256, [0, 256]) # image.ravel()将图像展开 ...
OpenCV Python教程(3、直方图的计算与显示)
转载请详细注明原作者及出处,谢谢! 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途什么的就直接略过去了. ...
随机推荐
C++_系列自学课程_第_10_课_表达式_《C++ Primer 第四版》
程序设计语言中大部分程序都在进行表达式的求值操作, 例如求两个数的和,求一个表达式的逻辑结果,或者通过输入输出表达式语句进行输入和输出. 这里我们对表达式进行讨论. 一.表达式 1.表达式 表达式由一 ...
linux设备模型
device_driver和device必须依附总线.总线.驱动.设备最终会落实为sysfs中的一个目录.kobject对应sysfs的一个目录. attribute直接落实sysfs中的一个文件,如 ...
HTML 链接<;a>;标签
定义和用法 标签定义超链接,用于从一张页面链接到另一张页面. 元素最重要的属性是 href 属性,它指示链接的目标. 在所有浏览器中,链接的默认外观是: 未被访 ...
jenkins远程命令执行利用工具
昨天看小飞侠写的py的jenkins的脚本,昨天晚上在微信里评论今天写一个JAVA的GUI的tools. 早上花了点时间写一下: code: package com.tools; import jav ...
Android实例-调用GOOGLE的TTS实现文字转语音(XE7+小米2)(无图)
注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYinYinQi ...
HDOJ--4786--Fibonacci Tree【生成树】
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意:给出n个点,m条边,和边的信息. 边有两种颜色,白色和黑色.现要求构造一个生成树.看是否能满足 ...
HTML5比较实用的代码
增强IE兼容性
python画简便的图片-用python简单处理图片(5):图像直方图相关推荐
- 如何用python画金字塔形状_用Python画小猪佩奇,落叶树和动漫人物
本文目录:小猪佩奇-落叶树-魔法少女 本文作者:小赖同学 最近在浏览Python文章时,无意中发现了一个好玩的画图工具turtle,看到各路大神竟然用Python画了一个图片出来,无法用言语来形容 ...
- python画画用哪个软件_如何用python画韦恩图? 使用python的tutul工具,画一朵雏菊花...
使用python的tutul工具,画一朵雏菊花 如何用python画韦恩图?不管什么时候,给心留一点空间.人生一世,不用什么都要去争,不是什么都要去抢,欲望少一点,满足多一点,这样才会活得潇洒一点,人 ...
- 用python画好看的图片,第二天用python绘画一些简单图片
python画笑脸程序源代码import turtle #画脸 t = turtle.Pen() t.speed(15) #t.circle(150) #t.color('orange') t.fil ...
- python画简便的图-最适合小白学的花色玩Python折线图|画个天气预报
原标题:最适合小白学的花色玩Python折线图|画个天气预报 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业 ...
- python画折线图代码-用Python画论文折线图、曲线图?几个代码模板轻松搞定!
前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...
- 用python画一束满天星花朵,python满天星绘制流程图
大家好,小编来为大家解答以下问题,用python画一束满天星花朵,python满天星绘制流程图,今天让我们一起来看看吧! 1.用python画一百个同心圆的代码? import matplotlib. ...
- 如何用python画出中国地图-用Python画一个中国地图
你用 Java 的 4 行代码画一个地图出来?m.drawcountries(linewidth=1.5) 就变成了如许: 用 Java 可能吗?用 PHP 可能吗? 如不雅我们想显示中国地图,只须要 ...
- 如何用python画出中国地图-用Python画中国地图(二)
在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...
- python画猪头_使用Python画小猪佩奇 社会人标配
看了一些用python实现小猪佩奇画画的帖子,向自己实现下,以此记录. 社会人的标配是谁,当然是吹风机小猪佩奇身上纹. 我自己尝试画过小猪配齐但是感觉眼睛特别难画,画出来的猪头没有立体感,眼睛画不好整 ...
最新文章
- Python编程比较好的机构怎么选择
- PyTorch 实现经典模型7:YOLO (v1, v2, v3, v4)
- 如何给CSDN博客添加个人微信二维码或自定义栏目
- 相册选取图片和照相机取图片
- 多媒体实时交互系统主要由系统服务器,多媒体设备和多媒体交互系统专利_专利申请于2017-03-08_专利查询 - 天眼查...
- 使用“Apple 诊断”来测试您的Mac 是不是存在硬件问题
- 【原创】黑群晖向白群晖 DS920+ 迁移
- 学习-Java包装类之Double类(9)
- 中国人工智能(AI)发展历程、AI产业重点发展区域、重点发展城市及中国AI产业地区发展总结及展望
- python 修改文件名有特殊符号_Linux删除包含特殊符号文件名的文件
- 大数据笔记--scala(第一篇)
- 计算机多媒体设备维护维修,学校多媒体教学设备的故障检修
- SystemError: could not open configuration file `/etc/libuser.conf': 没有那个文件或目录
- 函数模板和类模板的使用
- NULL, '\0',0 '0'的区别
- matlab中除号的有效字符,乘号(x)、除号(÷)、双引号()等字符实体的HTML代码...
- Ext3文件系统介绍
- Shader 学习笔记:杂记
- 360 Total Security(360国际版)官方中文版V10.8.0.1269 | 360国际版和国内版区别很大-杀毒能力相当且非常纯净不流氓
- 【P3】 对称三相负载上的相电压、相电流与线电压、线电流的关系
热门文章
- [WinError 3] 系统找不到指定的路径。: ‘./flower_data/train‘ 问题解决
- 别只盯着LoRa、SigFox, LPWAN 连接技术还有这些!
- 一招,提高 Github 成员微信群运营效率
- 简单好听的id_简单好听的微信id(精选500个)_见过的最好看的微信id_简单好记好看的微信号 - 第4页...
- cocos2d-x android 直接加载下载到sd的zip里的资源文件(一)
- meo学习笔记3:并行与并发,线程与进程的区别
- NS3运行Reno,BBR,CUBIC等拥塞控制算法
- seo搜索引擎优化-SEO优化教程附关键词工具以及文章采集软件
- mysql数据库报错1146_数据库错误代码1146 - 本地与在线
- 《Miss Talk》第07期:对话拓课云联合创始人兼CTO 王晓伟