直方图

画直方图和函数密度曲线的几种方法

◇◆丶佛笑我妖孽 提交于 2020-03-17 00:40:51
方法一:R语言 w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5, + 66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0) hist(w, freq = FALSE) lines(density(w), col = "blue") x <- 44:76 lines(x, dnorm(x, mean(w), sd(w)), col = "black") lines(density(w), col = "blue") density是核密度曲线,比正态曲线更拟合 方法二: 参考https://blog.csdn.net/tanzuozhev/article/details/51106291 library(ggplot2) set.seed(1234) dat <- data.frame(cond = factor(rep(c("A","B"), each=200)), rating = c(rnorm(200),rnorm(200, mean=.8))) ggplot(dat, aes(x=rating)) + geom_histogram(aes(y=..density..), # 这一步很重要,使用density代替y轴 binwidth=.5, colour="black", fill=

亮度直方图局域化

≡放荡痞女 提交于 2020-03-07 02:55:42
工作中涉及到对图像压缩算法的评价,需要衡量图像压缩前后图像的差异,经典的PSNR指标对结构性差异较敏感,但是对亮度差异不够敏感,故采用亮度直方图来反映差异,因问题大多出现于局部,故而选择在局部上进行计算,避免全局的统计降低敏感度,记录如下: #coding=utf-8 from PIL import Image import numpy as np import datetime as dt class HistogramSmilarity ( object ) : def __init__ ( self , size , gridsize ) : self . size = size self . gridsize = gridsize self . widemount = self . size [ 0 ] // self . gridsize [ 0 ] self . highmount = self . size [ 1 ] // self . gridsize [ 1 ] self . gridcount = self . widemount * self . highmount #self.gridcount=int(self.size[0]*1.0/(self.gridsize[0]-0.5)+1)*int(self.size[1]*1.0/(self

LBP特征提取原理及代码实现

北战南征 提交于 2020-03-06 15:37:25
老规矩,先上背景,算是表示对LBP算法提出者的一种尊敬(其实,是为了装...kkk,大家都懂ha)。 一、LBP背景:     LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像 局部纹理特征 的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由 T. Ojala, M.Pietikäinen, 和D. Harwood 在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征。至今,仍在图像识别和人脸识别部分,有很好的效果。 二、LBP特征的原理:      从94年T. Ojala, M.Pietikäinen, 和D. Harwood提出至今,LBP经历过多次的改进,以下根据时间顺序介绍: FirstBleed:    原始的LBP算子定义为在3*3的窗口内,以窗口内的中心点的像素值为标准,对比窗口内其余8个元素的像数值大小,大于中心点的位置用1表示,小于为0。如此,3*3领域内的8个点恰可产生8为二进制数字(通常转化为十进制表示成LBP值)即为中心点的LBP特征值。     上图: SecondBleed:    原始的LBP提出后,研究人员不断对其改进和优化,以下是改进点。   (一):圆形LBP算子:      原始LBP算子固定为某个区域,在图像尺寸和频率纹理发生改变时,会出现很大的偏差

OpenCV-Python教程(10、直方图均衡化)

▼魔方 西西 提交于 2020-03-06 03:00:48
相比C++而言,Python适合做原型。本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处。这篇文章介绍在Python中使用OpenCV和NumPy对直方图进行均衡化处理。 提示: 转载请详细注明原作者及出处,谢谢! 本文不介详细的理论知识,读者可从其他资料中获取相应的背景知识。笔者推荐清华大学出版社的《 图像处理与计算机视觉算法及应用(第2版) 》,对于本节的内容,建议直接参考 维基百科直方图均衡化 ,只需看下页面最后的两幅图就能懂了。 本文内容: 使用查找表拉伸直方图 使用OpenCV和NumPy的函数以不同的方式进行直方图均衡化 在某些情况下,一副图像中大部分像素的强度都集中在某一区域,而质量较高的图像中,像素的强度应该均衡的分布。为此,可将表示像素强度的直方图进行拉伸,将其平坦化。如下: 图来自维基百科 实验数据 本节的实验数据来自维基百科,原图如下: 其直方图为: 使用查找表来拉伸直方图 在图像处理中,直方图均衡化一般用来均衡图像的强度,或增加图像的对比度。在介绍使用直方图均衡化来拉伸图像的直方图之前,先介绍使用查询表的方法。 观察上图中原始图像的直方图,很容易发现大部分强度值范围都没有用到。因此先检测图像非 0 的最低( imin )强度值和最高( imax )强度值。将最低值 imin 设为 0 ,最高值 imax

OpenCV处理直方图

不羁岁月 提交于 2020-03-06 02:57:04
直方图可以用来描述各种不同的事物,如物体的色彩分布、物体边缘梯度模板,以及表示目标位置的当前假设。 简单的说,直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin中。bin中的数值是从数据中计算出特征的统计量,这些数据可以是诸如梯度、方向、色彩或者任何其他特征。无论如何,直方图获得的是数据分布的统计图。通常直方图的维数要低于原始数据。 具体可参见: http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calculation.html#histogram-calculation 下面参考《Learning OpenCV》一个例子。根据输入的图像计算出一个色相饱和度的2维直方图。 /** * file:参考《learning OpenCV》P227 * author: Jacky_Liu * date: 2013-12-06 */ #include <QtCore/QCoreApplication> #include <cv.h> #include <highgui.h> int main(int argc, char *argv[]) { // QCoreApplication a(argc, argv); // return a.exec();

Wellner 自适应阈值二值化算法

会有一股神秘感。 提交于 2020-03-04 19:16:11
参考文档: Adaptive Thresholding for the DigitalDesk.pdf       Adaptive Thresholding Using the Integral Image.pdf 一、问题的由来 一个现实: 当用照像机拍摄一副黑纸白字的纸张时,照相机获得的图像并不是真正的黑白图像。不管从什么角度拍摄,这幅图像实际上是灰度或者彩色的。除非仔细的设置灯光,否则照相机所拍摄的放在桌子上的纸张图像并不能代表原始效果。不像在扫描仪或打印机内部,想控制好桌子表面的光源是非常困难的。这个开放的空间可能会受到台灯、吊灯、窗户、移动的影子等影响。人类的视觉系统能自动补偿这些,但是机器没有考虑到这些因素因此拍出的效果会很差。 这个问题在处理那种高对比度的艺术线条或文字时尤为突出,因为这些东西都是真正的黑色或白色。而摄像头会产生一副具有不同等级的灰度图像。许多应用都必须清楚的知道图像的那一部分是纯黑或纯白,以便将文字传递给OCR软件去识别。这些系统无法使用灰度图像(典型的是8位每像素),因此必须将他们转换为黑白图像。这有很多种方式去实现。在某些情况下,如果这些图像最终是给人看的,这些图像会使用一些抖动技术,以便使他们看起来更像灰度图像。但是对于机器处理的过程,比如文字识别,选择复制操作,或多个图像合成,系统就不可以使用抖动的图像。系统仅仅需要简单的线条

octave——基本操作

坚强是说给别人听的谎言 提交于 2020-03-03 23:09:51
1、如果不想用actave:1>,可以使用SP1('>> ')可以改变红色输出以>>表示 2、利用Octave绘制直方图: octave:1> w = -6 + sqrt(10)*(randn(1, 100000)); octave:2> hist(w) octave:3> hist(w ,50) % 绘制条数为50的直方图3、flipud表示矩阵垂直翻转4、设置坐标轴范围 5、添加路径    addpath('')搜索函数时即便不在当前目录,添加其他路径后,会搜索其路径。 6、可视化矩阵命令imagesc(),在用colorbar显示不同颜色的梯度,colormap gray显示灰度图。 来源: https://www.cnblogs.com/gkh-whu/p/10549346.html

Opencv Java 直方图 傅里叶变换

亡梦爱人 提交于 2020-03-03 17:26:50
Java 版本: JavaCV 用OpenCV读一张图片并显示。只需将程序运行时的截图回复。如何安装配置创建项目编写OpenCV代码,可参考何东健课件和源代码或其他资源。 1. 用OpenCV读一张图片,显示该图的直方图。只需截图回复。如何安装配置创建项目编写OpenCV代码,可参考何东健课件和源代码的第3章或其他资源。 2. 用OpenCV读一张图片,求该图的离散傅立叶变换,并显示其频谱。只需截图回复。如何安装配置创建项目编写OpenCV代码,可参考何东健课件和源代码的第5章或其他资源。 3. 虽然我们是以OpenCV来布置实践,但是如果同学们采用其他方式,也是可以的,比如使用Matlab等等。只要能把问题解决。不同的途径有不同的特点,在实践过程中同学们可以去体会。 4. 对第3章理论内容,只要求同学们了解会用即可,如果想进一步了解相关内容,同学们可以参考数字信号处理相关书籍或者其他数字图像处理书籍。 直方图 /** * @program: learn-opencv * @description: 绘制图片直方图 * @author: Mr.Dai * @create: 2020-03-03 16:30 **/ public class Histogram { private final static String path=System.getProperty("user

9-15 16-21 23-26 29-30 索引

烂漫一生 提交于 2020-03-03 04:43:14
第9节 柱状图 第10节 分组柱图 第11节 水平柱状图 第12节 饼图 第13节 折线图、叠加区域图 第14节 散点图、直方图 第15节 密度图、数据相关性 第16节 多表联合 第17节 数据校验、轴的概念 第18节 分割列 第19节 求和平均统计 第20节 定位、消除重复数据 第21节 旋转表格 第23节透视表、分组、聚合 第24节线性回归、数据预测 第25节条件格式 第26节条件格式 第29课SQL Server 第30课复杂函数调用 来源: CSDN 作者: 好多米的秃头之路1024 链接: https://blog.csdn.net/weixin_46276803/article/details/104618157

反向投影图

你离开我真会死。 提交于 2020-03-02 03:49:44
图像的反向投影图是用输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个bin上的值来代替该像素值,所以得到的反向投影图是单通的。用统计学术语,输出图像象素点的值是观测数组在某个分布(直方图)下的概率。 其中b(xi)表示在位置xi上像素对应的直方图第b(xi)个bin,直方图共m个bin,qu表示第u个bin的值。 还是以例子说明 (1)例如灰度图像如下 Image= 0 1 2 3 4 5 6 7 8 9 10 11 8 9 14 15 (2)该灰度图的直方图为(bin指定的区间为[0,3),[4,7),[8,11),[12,16)) Histogram= 4 4 6 2 (3)反向投影图 Back_Projection= 4 4 4 4 4 4 4 4 6 6 6 6 6 6 2 2 例如位置(0,0)上的像素值为0,对应的bin为[0,3),所以反向直方图在该位置上的值这个bin的值4。 1.反向投影的 作用 是什么? 反向投影用于在 输入 图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为 模板 图像)最匹配的点或者区域,也就是 定位 模板图像出现在输入图像的位置。 2.反向投影如何查找(工作)? 查找的方式就是不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。 假设 我们 有一张100x100的输入图像