搜档网
当前位置:搜档网 › OpenCV统计应用-直方图比较

OpenCV统计应用-直方图比较

OpenCV统计应用-直方图比较
OpenCV统计应用-直方图比较

OpenCV统计应用-直方图比较

cvCompareHist(),是比较两个统计直方图的分布,总共有四个方法,被定义如下:

#define CV_COMP_CORREL 0

#define CV_COMP_CHISQR 1

#define CV_COMP_INTERSECT 2

#define CV_COMP_BHATTACHARYYA 3

而这些方法分别为相关系数,卡方,交集法以及在做常态分布比对的Bhattacharyya距离,这些方法都是用来做统计直方图的相似度比较的方法,而且,都是根据统计学的概念,这边就简单的拿来用灰阶统计直方图来比较,而这部份的比较方式,是由图形的色彩结构来着手,下面就简单的用三种情况来分析它们距离比较的方式

直方图比较实作

#include

#include

#include

#include

int HistogramBins = 256;

float HistogramRange1[2]={0,255};

float *HistogramRange[1]={&HistogramRange1[0]};

int main()

{

IplImage *Image1=cvLoadImage("RiverBank.jpg",0);

IplImage *Image2=cvLoadImage("DarkClouds.jpg",0);

CvHistogram *Histogram1=cvCreateHist(1,&HistogramBins,CV_HIST_ARRAY,HistogramRange);

CvHistogram *Histogram2=cvCreateHist(1,&HistogramBins,CV_HIST_ARRAY,HistogramRange);

cvCalcHist(&Image1,Histogram1);

cvCalcHist(&Image2,Histogram2);

cvNormalizeHist(Histogram1,1);

cvNormalizeHist(Histogram2,1);

printf("CV_COMP_CORREL : %.4f\n",cvCompareHist(Histogram1,Histogram2,CV_COMP_CORREL)); printf("CV_COMP_CHISQR : %.4f\n",cvCompareHist(Histogram1,Histogram2,CV_COMP_CHISQR)); printf("CV_COMP_INTERSECT : %.4f\n",cvCompareHist(Histogram1,Histogram2,CV_COMP_INTERSEC T));

printf("CV_COMP_BHATTACHARYYA : %.4f\n",cvCompareHist(Histogram1,Histogram2,CV_COMP_BHAT TACHARYYA));

cvNamedWindow("Image1",1);

cvNamedWindow("Image2",1);

cvShowImage("Image1",Image1); cvShowImage("Image2",Image2); cvWaitKey(0);

}

原始图片:

执行结果:

(1)RiverBank.jpg & DarkClouds.jpg

Output:

CV_COMP_CORREL : -0.1407

CV_COMP_CHISQR : 0.6690

CV_COMP_INTERSECT : 0.4757

CV_COMP_BHATTACHARYYA : 0.4490 (2)RiverBank.jpg & RiverBank.jpg

Output:

CV_COMP_CORREL : 1

CV_COMP_CHISQR : 0

CV_COMP_INTERSECT : 1

CV_COMP_BHATTACHARYYA : 0

(3)Black.jpg & White.jpg

Output:

CV_COMP_CORREL : 1

CV_COMP_CHISQR : 1

CV_COMP_INTERSECT : 0

CV_COMP_BHATTACHARYYA : 1

这边的直方图比较,则是将它们的统计直方图用cvNormalizeHist()正规化成1,在由正规化的统计分布来做直方图的比较,从上面的输出结果可以推测出,卡方法以及Bhattacharyya是数值越小图形越相似,而相关系数则是看图形的分布程度,因此第三个Black.jpg&White.jpg所显示相关系数的结果才会是1,这边的图形比较用的是统计学的方法,而一般的比较方式还有欧几里德距离的方式,在这个cvCompareHist()的函式,也可以实作出多通道的多维度直方图比较,而且支持CV_HIST_ARRAY及CV_HIST_SPARSE这两种直方图数

据结构的格式,而这些比对方法的相关公式如下

相关系数法

而它的公式推导如下

再来是卡方的方式

这边的卡方法跟一般的卡方检定不太一样,下面是一般适合度检定(Goodness of fit test)的公式

o为观察者次数,e为期望值次数

交集的方式就比较简单了,两个直方图取最小的做累加

再来就是常态分配比对的Bhattacharyya距离

数字图像处理实验报告

实验一灰度图像直方图统计 一、实验目的 掌握灰度图像直方图的概念和计算方法,了解直方图的作用和用途。提高学生编程能力,巩固所学知识。 二、实验内容和要求 (1)用Photoshop显示、了解图像平均明暗度和对比度等信息; (2)用MatLab读取和显示一幅灰度图像; (3)用MatLab编写直方图统计的程序。 三、实验步骤 1. 使用Photoshop显示直方图: 1)点击文件→打开,打开一幅图像; 2)对图像做增强处理,例如选择图像→调整→自动对比度对图像进行灰度拉伸,观察图像进行对比度增强前后的视觉变化。 3)利用统计灰度图像直方图的程序分别针对灰度拉伸前后的灰度图像绘制其灰度直方图,观察其前后的直方图变化。 2.用MatLab读取和显示一幅灰度图像; 3. 绘制图像的灰度直方图; function Display_Histogram()

Input=imread('timg.jpg'); figure(100); imshow(uint8(Input)); title('原始图像'); Input_Image=rgb2gray(Input); figure(200); imshow(uint8(Input_Image)); title('灰度图像'); sum=0; His_Image=zeros(1,256); [m,n]=size(Input_Image); for k=0:255 for I=1:m for j=1:n if Input_Image(I,j)==k His_Image(k+1)=His_Image(k+1)+1; end end end end figure(300); plot(His_Image); title('图像的灰度直方图'); 4.显示图像的灰度直方图。

实验-直方图统计及亮度调整概要

实验 2.直方图统计及亮度调整 一、实验目的 了解并掌握直方图统计方法以及分段线性拉伸、直方图均衡等亮度调整算法, 通过观察对这些运算建立感性认识。 二、实验内容 1. 观察各类图像的直方图; 2. 操作 LUT 灰度对照表,进行分段线性拉伸; 3. 采用直方图均衡方法对低对比度的图像进行对比度增强。 三、基本原理 1.直方图的定义 图象的灰度直方图是一个函数, 表示数字图象中每一灰度级与该灰度级出现的频数 (即具有这一灰度级的象素数目间的对应关系: P b N b M ( ( = M 为一幅图象所包含的象素总数; N (b 为图象中灰度值为 b 的象素总数。通常,以灰度值 b 为横坐标, N (b 为纵坐标。直方图是图象中象素灰度值的一阶概率分布密度的一种近似。 2.对比度增强 对比度增强又称为点运算,逐点改变输入图象的每一象素的灰度,而各象素的位置不改变, 一般用来拓宽图象的灰度范围。

(1灰度变换法(LUT 对照 典型的对比度拉伸灰度变换关系如图 1所示,其对应关系如下: g f f a f a g a f b f b g b f L a b = ≤< -+≤< -+≤

图 1. 典型的对比度拉伸灰度变换关系 可见,输出和输入图象之间各点的灰度是按照一定的映射关系相联系的,这种映射关系在计算机中则是通过一个查照表(look-up table,即 LUT 实现的。通过 LUT 对照改变了图象中不同灰度特性趋于的对比度或反差(contrast ,达到改善视觉效果的目的。 (2 直方图均衡 直方图均衡(histogram equalization就是通过点运算使输入图像的灰度分布较为均匀, 使图像具有较好的视觉效果。设 r , s 分别为原图和新图的灰度, ?r (r , ?s (s 分别为原图及新图的概率密度函数,则均衡变换为原图像的累积分布函数: s T r r r r ==?( ?( 0 对于离散图像,均衡转换公式为: ∑∑=====k j j k j j r k k n M L r P r T s 0max 0 ( ( 其中, L max 指图像中的最大灰度值(对于灰度图像就是 255。 四、实验步骤 (一 Matlab 的 demo 演示

高二81统计随机抽样直方图茎叶图知识点经典例题及练习题带答案

环球雅思教育学科教师讲义 讲义编号: ______________ 副校长/组长签字:签字日期: 【考纲说明】 1、理解随机抽样的必要性和重要性,了解分布、样本数据标准差的意义和作用,理解用样本估计总体的思想。 2、会画频率分布直方图、频率折线图、茎叶图,会用随机抽样的基本方法和样本估计总体的思想解决一些简单的实际问题 【趣味链接】 U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。BONO需花1分钟过桥,EDGE需花2分钟过桥,ADAM需花5分钟过桥,LARRY需花10分钟过桥,他们要如何在17分钟内过桥呢? 【知识梳理】 一、抽样方法与总体分布的估计 1、随机抽样 (1)总体:在统计学中, 把研究对象的全体叫做总体,把每个研究对象叫做个体,把总体中个体的总数叫做总体容量.总体与个体之间的关系类似于集合与元素的关系. (2)样本:从总体中随机抽取一部分个体叫做总体的一个样本,样本中个体的数目称为样本的容量,样本和总体之间

的关系类似于子集和集合之间的关系. (3)简单随机抽样:一般地,从元素个数为N 的总体中不放回地抽取容量为的样本,如果每一次抽取时总体中的各个个体被抽到的可能性是相同的,那么这种抽样方法叫简单随机抽样,这样抽取的样本,叫做简单随机样本. 常用的方法有抽签法和随机数表法. (4)系统抽样:当总体中的个体比较多时,将总体分成均衡的若干部分,然后按照预先制定的规则,从每一部分中抽取一个个体,得到所需要的样本,这样的抽样方法称为系统抽样,也称作等距抽样. (5)分层抽样:当总体由有明显差别的几部分组成时,为了使抽取的样本更好地反映总体的情况,可将总体中各个个体按某种特征分成若干个互不重叠的几部分,每一部分叫做层,在各层中按层在总体中所占比例进行简单随机抽样或系统抽样,这种抽样方法叫做分层抽样. 2、频率分布直方图与茎叶图 (1)频率分布:样本中所有数据(或数据组)的频数和样本容量的比就是该数据的频率,所有数据(或数据组)的频率的分布变化规律叫做频率分布,可以用频率分布表、频率分布折线图、茎叶图、频率分布直方图来表示. (2)频率折线图:如果将频率分布直方图中各相邻的矩形的上底边的中点顺次连接起,就得到一条折线,称这条折线为本组数据的频率折线图。 (3)总体密度曲线:随着样本容量的增加,作图时所分的组数增加,组距减小,相应的频率折线图会越来越接近于一条光华曲线,即总体密度曲线。 (4)制作茎叶图的方法是:将所有两位数的十位数字作为“茎”,个位数字作为“叶”,茎相同者共用一个茎,茎按从小到大的顺序从上向下列出,共茎的叶一般按从大到小(或从小到大)的顺序同行列出. 茎叶图对于分布在0~99的容量较小的数据比较合适,此时,茎叶图比直方图更详尽地表示原始数据的信息. 在茎叶图中,茎也可以放两位,后面位数多可以四舍五入后再制图. 3、样本的数字特征 (1)众数:出现次数最多的数叫做众数. (2)中位数:如果将一组数据按大小顺序依次排列,把处在最中间位置的一个数据或中间两个数据的平均是叫做这组数据的中位数. (3)平均数与加权平均数:如果有n 个数,,,,n x x x x ??321那么12n x x x x n ++???+= 叫做这n 个数的平均数. 如果在n 个数中,1x 出现次1f 次, 2x 出现次2f 次,……,k x 出现次2f 次,(这里),n f f f k =+??++21那么 11221 ()k k x x f x f x f n =++???+叫做这n 个数的加权平均数,其中k f f f ??,,21叫做权. (4)标准差与方差:设一组数据123n x x x x ?,,,,的平均数为x ,则

OpenCV成长之路(8)直线、轮廓的提取与描述

OpenCV成长之路(8):直线、轮廓的提取与描述 分类:OpenCV成长之路2014-01-04 18:35 689人阅读评论(0) 收藏举报 直线、轮廓的提取与描述基于内容的图像分析的重点是提取出图像中具有代表性的特征,而线条、轮廓、块往往是最能体现特征的几个元素,这篇文章就针对于这几个重要的图像特征,研究它们在OpenCV中的用法,以及做一些简单的基础应用。 一、Canny检测轮廓 在上一篇文章中有提到sobel边缘检测,并重写了soble的C++代码让其与matlab中算法效果一致,而soble边缘检测是基于单一阈值的,我们不能兼顾到低阈值的丰富边缘和高阈值时的边缘缺失这两个问题。而canny算子则很好的弥补了这一不足,从目前看来,canny边缘检测在做图像轮廓提取方面是最优秀的边缘检测算法。 canny边缘检测采用双阈值值法,高阈值用来检测图像中重要的、显著的线条、轮廓等,而低阈值用来保证不丢失细节部分,低阈值检测出来的边缘更丰富,但是很多边缘并不是我们关心的。最后采用一种查找算法,将低阈值中与高阈值的边缘有重叠的线条保留,其他的线条都删除。 本篇文章中不对canny的算法原理作进一步说明,稍后会在图像处理算法相关的文章中详细介绍。 下面我们用OpenCV中的Canny函数来检测图像边缘 1.int main() 2.{ 3. Mat I=imread("../cat.png"); 4. cvtColor(I,I,CV_BGR2GRAY); 5. 6. Mat contours; 7. Canny(I,contours,125,350); 8. threshold(contours,contours,128,255,THRESH_BINARY); 9. 10. namedWindow("Canny"); 11. imshow("Canny",contours);

matlab图像处理图像灰度变换直方图变换

附录1 课程实验报告格式 每个实验项目包括:1)设计思路,2)程序代码,3)实验结果,4)实验中出现的问题及解决方法。 实验一:直方图灰度变换 A:读入灰度图像‘debye1.tif’,采用交互式操作,用improfile绘制一条线段的灰度值。 imread('rice.tif'); imshow('rice.tif'),title('rice.tif'); improfile,title('主对角线上灰度值')

B:读入RGB图像‘flowers.tif’,显示所选线段上红、绿、蓝颜色分量的分布imread('flowers.tif'); imshow('flowers.tif'),title('flowers.tif'); improfile,title('主对角线红绿蓝分量') C:图像灰度变化 f=imread('rice.png'); imhist(f,256); %显示其直方图 g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像) figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1] g2=imadjust(f,[0.5 0.75],[0 1]); figure,imshow(g2) 图像灰度变换处理实例: g=imread('me.jpg'); imshow(g),title('原始图片'); h=log(1+double(g)); %对输入图像对数映射变换 h=mat2gray(h); %将矩阵h转换为灰度图片

h=im2uint8(h); %将灰度图转换为8位图 imshow(h),title('转换后的8位图'); 运行后的结果: 实验二:直方图变换 A:直方图显示 I=imread('cameraman.tif'); %读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题运行结果如下:

直方图 知识讲解

直方图知识讲解 责编:康红梅 【学习目标】 1. 会制作频数分布表,理解频数分布表的意义和作用; 2. 会画频数分布直方图,理解频数分布直方图的意义和作用. 【要点梳理】 要点一、组距、频数与频数分布表的概念 1.组距:每个小组的两个端点之间的距离(组内数据的取值范围). 2.频数:落在各小组内数据的个数. 3.频数分布表:把各个类别及其对应的频数用表格的形式表示出来,所得表格就是频数分布表.要点诠释: (1)求频数分布表的一般步骤:①计算最大值与最小值的差;②决定组距和组数; ③确定分点;④列频数分布表; (2)频数之和等于样本容量. (3)频数分布表能清楚、确切地反映一组数据的大小分布情况,将一批数据分组,一般数据越多,分的组也越多,当数据在100个以内时,按数据的多少,常分成5~12组,在分组时,要灵活确定 组距,使所分组数合适,一般组数为最大值-最小值 组距 的整数部分+1. 要点二、频数分布直方图 1.频数分布直方图:是以小长方形的面积来反映数据落在各个小组内的频数的大小,直方图由横轴、纵轴、条形图三部分组成. (1)横轴:直方图的横轴表示分组的情况(数据分组); (2)纵轴:直方图的纵轴表示频数; (3)条形图:直方图的主体部分是条形图,每一条是立于横轴之上的一个长方形、底边长是这个组的组距,高为频数. 2.作直方图的步骤: (1)计算最大值与最小值的差; (2)决定组距与组数; (3)列频数分布表; (4)画频数分布直方图. 要点诠释:(1)频数分布直方图简称直方图,它是条形统计图的一种. (2)频数分布直方图用小长方形的面积来表示各组的频数分布,对于等距分组的数据,可以用小长方形的高直接表示频数的分布. 【高清课堂:数据的描述 369923 直方图和条形图的联系与区别:】 3.直方图和条形图的联系与区别: (1)联系:它们都是用矩形来表示数据分布情况的;当矩形的宽度相等时,都是用矩形的高来表示数据分布情况的; (2)区别:由于分组数据具有连续性,直方图中各矩形之间通常是连续排列,中间没有空隙,而条形图中各矩形是分开排列,中间有一定的间隔;直方图是用面积表示各组频数的多少,而条形图是用矩形的高表示频数. 要点三、频数分布折线图 频数分布折线图的制作一般都是在频数分布直方图的基础上得到的,具体步骤是:首先取直方图中每一个长方形上边的中点;然后再在横轴上取两个频数为0的点(直方图最左及最右两边各取一个,它们分别与直方图左右相距半个组距);最后再将这些点用线段依次连接起来,就得到了频

opencv 椭圆检测识别并画出轮廓

*#include "stdafx.h" #include "cv.h" #include "highgui.h" using namespace cv; using namespace std; //标示符的可见范围 CvPoint2D32f GetCPoint(IplImage* imageFg,int maxX); void FitEllipseBlob(IplImage* imageFg); int main( int argc, char** argv ) { IplImage* pImg; //声明IplImage指针 //载入图像 pImg = cvLoadImage( "C:\\Users\\BB\Desktop\\bec\\OPENCV椭圆拟合定位椭圆中心点以及重心法定位程序\\OPENCV椭圆拟合定位椭圆中心点以及重心法定位程序\\特征中心点提取误差分析\\image.bmp", 1);//[[此处的argc==2是否需要改成argc==1?我改了之后才能运行成功。求大牛解惑]] // wmzzzz : 在"属性"|"debug"|里的command arguments 里加入参数(一个路径:要打开的文件路径) 这时argc==2 就合理了...可以试试多加几个 int pointX = 0; for (int i=0;i<19;i++) { pointX=60*i+30; cvEllipse(pImg,cvPoint(pointX,80),cvSize(19,20),-200,0,360,CV_RGB(255,255,255),-1,CV _AA,0); } IplImage* m_imageGray = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1); IplImage* m_imageBw = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1); cvCvtColor(pImg,m_imageGray,CV_RGB2GRAY); cvThreshold(m_imageGray,m_imageBw,128,255,CV_THRESH_BINARY); CvPoint2D32f pointXX; float XXX,YYY; for (int i = 0;i<19;i++) {

数字图像处理点运算和直方图处理

实验1 点运算和直方图处理 一、实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理。 3. 进一步理解利用点操作这一方法进行图像处理的特点。 4. 掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。 二、实验的硬件、软件平台 硬件:计算机 软件:操作系统:WINDOWS 7 应用软件:MATLAB 三、实验内容及步骤 1. 了解Matlab图像工具箱的使用。 2. 利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中 的至少2个。 ⑴图1灰度范围偏小,且灰度偏低,改正之。 ⑵图2暗处细节分辨不清,使其能看清楚。 ⑶图3亮处细节分辨不清,使其能看清楚。 图1 图2 图3 3. 给出处理前后图像的直方图。 4. 利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操 作,观察结果。 四、思考题 1. 点操作能完成哪些图像增强功能? 2. 直方图均衡化后直方图为何并不平坦?为何灰度级会减少? 五、实验报告要求

1.对点操作的原理进行说明。 2.给出程序清单和注释。 3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。 实验代码以及解读 点操作: I = imread('POINT1.BMP')。 %读入图像 j=rgb2gray(I)。%将图像转为灰度图像 INFO=IMFINFO('POINT1.BMP') %获取图片的格式、尺寸、颜色数量、修改时间等信息[l,r]=size(j)。%图片大小 figure。%建立一个图形框 subplot(221) imshow(j) %在两行两列的第一个位置放置图片j title('POINT1.BMP') %给该图片加上标题POINT1.BMP for m=1:l for n=1:r %从第一个像素循环到最后一个像素p1(m,n)=j(m,n)*1.2。%把各点乘上1.2得到p1图 end end for m=1:l for n=1:r p2(m,n)=j(m,n)*2。%%把各点乘上2得到p2图 end end for m=1:l for n=1:r p3(m,n)=j(m,n)*2+50。%把各点乘上2再加50得到p2图 end end subplot(222) imshow(p1) title('j(m,n)*1.2') %p1图放在第二个位置且冠名j(m,n)*1.2 subplot(223) imshow(p2) title('j(m,n)*2') %p1图放在第三个位置且冠名j(m,n)* 2 subplot(224) imshow(p3) title('j(m,n)*2+50') %p1图放在第四个位置且冠名j(m,n)*2+50 figure。%建立一个新的窗口并且依次显示以上四个图的直方图

灰度图像直方图统计

1.灰度图像直方图统计实习报告 一、实习目的 在学习灰度图像直方图的概念、计算方法、性质和相关应用的基础上,应用Photoshop软件和编写灰度直方图统计程序,能初步掌握图像文件格式读写与图像数据处理,提高学生兴趣和编程能力,巩固所学知识。 二、实习内容 1.实习数据 E:\ 数字图像处理\实习一\Lena.raw 2.利用Photoshop显示图像的灰度直方图,从直方图上了解图像平均明暗度和对比度等信息。 3.要求利用C或C++语言编写灰度图像直方图统计的程序。 三、实习步骤 1.使用Photoshop显示直方图。 (1)点击“文件”-->“打开”,打开一幅图像,此处选取“lena.raw”; (2)点击“图像”-->“直方图”,显示图像的直方图;

(3)对图像做增强处理,例如选择“图像”-->“调整”-->“自动对比度”对图像进行灰度拉伸,然后再显示直方图,观察它的变化。 2.用C或C++编写显示直方图的程序。 具体代码如下: #include "stdio.h" #include "windows.h" void main() { FILE *fp; //文件类指针

fp=fopen("lena.raw","rb"); //打开二进制文件 if (fp==NULL) { printf("文件已损坏,请重新打开。 \n"); } else printf("文件已打开,已经生成.txt文档,请查看。\n"); BYTE PIXEL[512*512]; fread(PIXEL,1,512*512,fp);//二进制文件读取 fclose(fp);//关闭文件 int HistogramStat[256]; for(int i=0;i<256;i++) HistogramStat[i]=0;//赋初值 for (i=0;i<512*512;i++) { int a=PIXEL[i]; HistogramStat[a]++; } //统计像素个数 fp=fopen("灰度直方图.txt","rb"); fprintf(fp,"图像灰度,像素个数\n"); for (i=0;i<256;i++) { if (HistogramStat[i]!=0) fprintf(fp,"%5d,%5d\n",i,HistogramStat[i]); } fprintf(fp,"像素个数为0的已被省略。");//输出内容 } 四、思考题 1灰度直方图可以反映出一幅图像的哪些特性? 答:(1)表征了图像的一维信息。只反映图像中像素不同灰度出现的次数,而未反映像素所在的位置。即丢失了像素的位置信息。 (2)与图像之间的关系式多对一的映射关系。一幅图像唯一确定出与之对应的直方图,但不同的图像可能有相同的直方图。 (3)一幅图像可分为多个子区域,子图直方图之和为整图的直方图。 2灰度直方图有何用途?编程实现一种灰度直方图应用的程序。 答:(1)用于判断图像量化是否恰当。 (2)用于确定图像的二值化阈值。 (3)计算图像中物体的面积。 (4)计算图像信息量H(熵)。 3在本次实习的基础上,试编写直方图均衡的程序。 五、实习心得体会

统计经典例题及答案

统计专题训练 1、为了解小学生的体能情况,抽取了某校一个年级的部分学生进行一分钟跳绳次数测试,将取得数据整理后, 画出频率分布直方图(如图).已知图中从左到右前三个小组频率分别为0.1,0.3,0.4,第一小组的频数为 5. (1)求第四小组的频率;(2)参加这次测试的学生有多少人; (3)若次数在75次以上(含75次)为达标,试估计该年级学生跳绳测试的达标率是多少. 解(1)由累积频率为1知,第四小组的频率为1-0.1-0.3-0.4=0.2. (2)设参加这次测试的学生有x人,则0.1x=5,∴x=50.即参加这次测试的学生有50人. (3)达标率为0.3+0.4+0.2=90%,所以估计该年级学生跳绳测试的达标率为90%. 2、对某400件元件进行寿命追踪调查情况频率分布如下: 寿命 (1) (3)估计元件寿命在700 h以上的频率. 解(1)寿命与频数对应表: (3)估计该元件寿命在700 h以上的频率为0.40+0.20+0.15=0.75. 3、两台机床同时生产一种零件,在10天中,两台机床每天的次品数如下: 甲1,0,2,0,2,3,0,4,1,2 乙1,3,2,1,0,2,1,1,0,1 (1)哪台机床次品数的平均数较小?(2)哪台机床的生产状况比较稳定? 解(1)x甲=(1+0+2+0+2+3+0+4+1+2)×1 10=1.5,

x 乙=(1+3+2+1+0+2+1+1+0+1)×1 10=1.2. ∵x 甲>x 乙, ∴乙车床次品数的平均数较小. (2)s 2甲=110 [(1-1.5)2+(0-1.5)2+(2-1.5)2+(0-1.5)2+(2-1.5)2+(3-1.5)2+(0-1.5)2+(4-1.5)2+(1-1.5)2 +(2-1.5)2]=1.65,同理s 2乙=0.76, ∵s 2甲>s 2乙, ∴乙车床的生产状况比较稳定. 4、某良种培育基地正在培育一种小麦新品种A .将其与原有的一个优良品种B 进行对照试验.两种小麦各种植了25亩,所得亩产数据(单位:千克)如下: 品种A :357,359,367,368,375,388,392,399,400,405,412,414,415,421,423,423,427,430,430,434,443,445, 445,451,454 品种B :363,371,374,383,385,386,391,392,394,394,395,397,397,400,401,401,403,406,407,410,412,415, 416,422,430 (1)完成数据的茎叶图;(2)用茎叶图处理现有的数据,有什么优点? (3)通过观察茎叶图,对品种A 与B 的亩产量及其稳定性进行比较,写出统计结论. 解 (1) (2)由于每个品种的数据都只有25个,样本不大,画茎叶图很方便;此时茎叶图不仅清晰明了地展示了数据的分布情况,便于比较,没有任何信息损失,而且还可以随时记录新的数据. (3)通过观察茎叶图可以看出:①品种A 的亩产平均数(或均值)比品种B 高;②品种A 的亩产标准差(或方差)比品种B 大,故品种A 的亩产量稳定性较差. 5、某个体服装店经营各种服装,在某周内获纯利润y (元)与该周每天销售这种服装件数x 之间的一组数据关系如下表: 已知:∑ i =17 x 2 i =280,∑ i =1 7 x i y i =3487. (1)求x ,y ; (2)画出散点图; (3)观察散点图,若y 与x 线性相关,请求纯利润y 与每天销售件数x 之间的回归直线方程.

OPENCV实现的轮廓检测与处理

// // The full "Square Detector" program. // It loads several images subsequentally and tries to find squares in // each image // #ifdef _CH_ #pragma package #endif #ifndef _EiC #include "cv.h" #include "highgui.h" #include #include #include #endif int thresh = 50; IplImage* img = 0; IplImage* img0 = 0; CvMemStorage* storage = 0; CvPoint pt[4]; const char* wndname = "Square Detection Demo"; // helper function: // finds a cosine of angle between vectors // from pt0->pt1 and from pt0->pt2 double angle( CvPoint* pt1, CvPoint* pt2, CvPoint* pt0 ) { double dx1 = pt1->x - pt0->x; double dy1 = pt1->y - pt0->y; double dx2 = pt2->x - pt0->x; double dy2 = pt2->y - pt0->y; return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10); } // returns sequence of squares detected on the image. // the sequence is stored in the specified memory storage CvSeq* findSquares4( IplImage* img, CvMemStorage* storage ) { CvSeq* contours; int i, c, l, N = 11; CvSize sz = cvSize( img->width & -2, img->height & -2 ); IplImage* timg = cvCloneImage( img ); // make a copy of input image

摄像头编程并且对图像的处理以及直方图的算法

题目:图像的基本处理班级:2011级软件2班姓名:刘磊磊 时间:20130907

摘要:随着数字化与多媒体时代的来临,数字图像处理已经成为必备的基础知识。全国各大专院校的计算机、电子、通信、医学、光学及许多相关专业都开设了与数字图像预处理相关的课程。数字图像二值化是图像预处理中的一项重要技术,其在模式识别、光学字符识别、医学成像等方面都有着重要应用。本论文主要为大家介绍24位真彩图像的灰度、二值处理以及图像的一些简单的打开和保存和如何画直方图,还有一些通过这次小学期学到的一些知识。 关键字:灰度处理,二值化 图像的打开 void CText1Dlg::ShowPic() { if(m_path =="") //判断图片路径是否存在 { return; } hwnd = GetDlgItem(IDC_pic); hDesDC = hwnd->GetDC()->m_hDC; hSrcDC = CreateCompatibleDC(hDesDC); hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_path,IMAGE_BITMAP,0,0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); GetObject(hBitmap, sizeof(BITMAP), &bm); SelectObject(hSrcDC, hBitmap); hwnd->GetClientRect(&rect); ::SetStretchBltMode(hDesDC,COLORONCOLOR); ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY); UpdateData(false);

基于灰度直方图的图像分割阈值自适应选取方法

中北大学 毕业设计(论文)任务书 学院、系: 专业: 学生姓名:车永健学号: 设计(论文)题目:基于灰度直方图的图像分割阈值自适应选取方法 起迄日期: 2015年3月9日~2015年6月20日设计(论文)地点: 指导教师:郭晨霞 系主任: 发任务书日期:2015年 2 月25 日

任务书填写要求 1.毕业设计(论文)任务书由指导教师根据各课题的具体情况填写,经学生所在系的负责人审查、系领导签字后生效。此任务书应在毕业设计(论文)开始前一周内填好并发给学生; 2.任务书内容必须用黑墨水笔工整书写或按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,不得随便涂改或潦草书写,禁止打印在其它纸上后剪贴; 3.任务书内填写的内容,必须和学生毕业设计(论文)完成的情况相一致,若有变更,应当经过所在专业及系主管领导审批后方可重新填写; 4.任务书内有关“学院、系”、“专业”等名称的填写,应写中文全称,不能写数字代码。学生的“学号”要写全号(如020*******,为10位数),不能只写最后2位或1位数字; 5.有关年月日等日期的填写,应当按照国标GB/T 7408—94《数据元和交换格式、信息交换、日期和时间表示法》规定的要求,一律用阿拉伯数字书写。如“2004年3月15日”或“2004-03-15”。

毕业设计(论文)任务书

毕业设计(论文)任务书 3.对毕业设计(论文)课题成果的要求〔包括毕业设计(论文)、图纸、实物样品等): 1、论文一份; 2、程序代码及图像结果; 3、英文翻译一份。 4.毕业设计(论文)课题工作进度计划: 起迄日期工作内容 2015年 3月 9 日~ 3 月20日 4 月 1 日~ 4月 20 日 4 月 21 日~ 5月 10 日 5 月 11 日~ 6月 15 日 6 月 16 日~ 6月 19 日查找资料,完成开题报告; 学习有关知识,方案确定,完成中期报告;完善算法并仿真验证; 撰写、修改、评阅毕业论文; 论文答辩 学生所在系审查意见: 系主任: 年月日

统计与概率经典例题(含答案和解析)

○…………外…………○…………装…………○…………订…………○…………线…………○ ………… 学校: ___ ___ _ _ __ _姓名:___ _ __ ___ _ _班级:__ __ _ _ ___ _ _考号:_ _____ __ ___ ○ … … … … 内 … … … … ○ … … … … 装 … … … …○ … … … … 订… … … … ○ … ………线…………○………… 统计与概率经典例题(含答案及解析) 1.(本题8分)为了解学区九年级学生对数学知识的掌握情况,在一次数学检测中,从学区2000名九年级考生中随机抽取部分学生的数学成绩进行调查,并将调查结果绘制成如下图表: ⑴表中a 和b 所表示的数分别为:a= .,b= .; ⑵请在图中补全频数分布直方图; ⑶如果把成绩在70分以上(含70分)定为合格,那么该学区2000名九年级考生数学成绩为合格的学生约有多少名? 2.为鼓励创业,市政府制定了小型企业的优惠政策,许多小型企业应运而生,某镇统计了该镇1﹣5月新注册小型企业的数量,并将结果绘制成如下两种不完整的统计图: (1)某镇今年1﹣5月新注册小型企业一共有 家.请将折线统计图补充完整; (2)该镇今年3月新注册的小型企业中,只有2家是餐饮企业,现从3月新注册的小型企业中随机抽取2家企业了解其经营状况,请用列表或画树状图的方法求出所抽取的2家企业恰好都是餐饮企业的概率. 3.(12分)一个不透明的口袋装有若干个红、黄、蓝、绿四种颜色的小球,小球除颜色外完全相同,为估计该口袋中四种颜色的小球数量,每次从口袋中随机摸出一球记下颜色并放回,重复多次试验,汇总实验结果绘制如图不完整的条形统计图和扇形统计图.

基于OpenCV的边缘检测算法在车身尺寸检测中的应用

万方数据

万方数据

万方数据

2010年6月中同制造、Ip信息化第39卷第11期 图2汽车车身部分原始图像1图4基于本文算法的处理结果1 图3汽车车身部分原始图像2图5基于本文算法的处理结果2 方便,具有广阔的应用前景。本文针对灰度分布不 均匀的图像,首先,通过对图像开窗后进行局部灰参考文献: 碱∞∞Pan肌AnalysisandM8ch妇1n‘e11igence,1986,度变换来改进边缘检测的效果,对窗口交界处再开hiCannyJA.Ccmaputationalapproachtoedgedetection[J].IEEE 设几个很小的窗口实现拼接来去除窗口交界处的 皇假边缘;其次,詈用自适璺阈值的改进型Canny[2]8章(6毓)晋:67.图9-像69处8理.与分析[M】.|匕京:清华大学出版社,1999:算法动态地随图像梯度幅值变化而变化。通过试懈一枷 验证明,本文的方法对于不同噪声干扰和光照背景[3]杨枝灵,王开.WLsualc++数字图像获取、处理及实践应下的图像,能够获得较好的处理效果,其抗噪性能用[M].北京:人民邮电出版社,2003:553—572. 好,定位精度高。利用该算法对汽车图像进行边缘[4]刑果?戚文芽,李萍,等?灰度图像的自适应边缘检测 [J].计算机工程与应用,2007,43(5):63—66? 检测,检测出的汽车边缘连续、清晰。 ApplicationofOpenCV——basedEdgeDetectionAgorithm intheVehicle——bodyDimensionDetection CHENWei—li,TANG/-Ion,GENGYah—biao (NorthwesternPolytechnicalUniversity,ShaanxiXi’aJl,710072,China) Abstract:Itmainlyintroducesthesolutiontoimprovetheefficiencyoftheedgedetection,whichcombinesthe detectionalgorithmofthestatisticalimagewindowcalculationwiththeenhancedCannyedgedetectionalgo—rithm.ItusesOpenCVdatabase雒basicfunctionlibraryandappliesthisagorithmtothevehicle—bodydi—mensiondetection.Thetestresultsshowthattheprocessingofedgedetectionismoreeffectiveandquicker.Keywords:Edge——detection;ImageProcess;Vehicle——bodyDimension 万方数据

绘制数字图像灰度直方图实验报告MATLAB实现

数字图像处理 实验报告 实验一绘制直方图 学号 姓名 日期

实验一绘制直方图 一、实验内容 1、编程绘制数字图像的直方图。 2、直方图均衡处理。 二、实验步骤 1、设计思想或者流程图。 灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 2、源程序并附上注释。 clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('1.jpg');%读入JPG彩色图像文件 imshow(PS)%显示出来 title('输入的彩色JPG图像') imwrite(rgb2gray(PS),'PicSampleGray.bmp');%将彩色图片灰度化并保存 PS=rgb2gray(PS);%灰度化后的数据存入数组 %二,绘制直方图 [m,n]=size(PS);%测量图像尺寸参数 GP=zeros(1,256);%预创建存放灰度出现概率的向量for k=0:255 GP(k+1)=length(find(PS==k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置 end figure,bar(0:255,GP,'g')%绘制直方图 title('原图像直方图') xlabel('灰度值') ylabel('出现概率') %三,直方图均衡化 S1=zeros(1,256); for i=1:256 for j=1:i S1(i)=GP(j)+S1(i);%计算Sk end end S2=round((S1*256)+0.5);%将Sk归到相近级的灰度for i=1:256 GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率

图像的直方图是图像的重要统计特征

图像的直方图是图像的重要统计特征,它可以认为是图像灰度密度函数的近似。直方图虽然不能直接反映出图像内容,但对它进行分析可以得出图像的一些有用特征,这些特征能反映出图像的特点。当图像对比度较小时,它的灰度直方图只在灰度轴上较小的一段区间上非零,较暗的图像由于较多的像素灰度值低,因此它的直方图的主体出现在低值灰度区间上,其在高值灰度区间上的幅度较小或为零,而较亮的图像情况正好相反。通常一幅均匀量化的自然图像的灰度直方图在低值灰度区间上频率较大,这样的图像较暗区域中的细节常常看不清楚。为使图像变清晰,可以通过变换使图像的灰度动态范围变大,并且让灰度频率较小的灰度级经变换后,其频率变得大一些,使变换后的图像灰度直方图在较大的动态范围内趋于均化。事实证明,通过图像直方图修改进行图像增强是一种有效的方法。 均匀量化的自然图像的灰度直方图通常在低值灰度区间上频率较大,使得图像中较暗区域中的细节常常看不清楚。为了使图像清晰,可将图像的灰度范围拉开,并且让灰度频率较小的灰度级变大,即让灰度直方图在较大的动态范围内趋于一致。 前面介绍的直方图均衡化处理方法从实验效果看还是很不错的,从实现算法上也可以看出其优点主要在于能自动整幅图像的对比度,但具体的增强效果也因此不易控制,只能得到全局均衡化处理的直方图。在科研和工程应用中往往要根据不同的要求得到特定形状的直方图分布以有选择的对某灰度范围进行局部的对比度增强,此时可以采用对直方图的规定化处理,通过选择合适的规定化函数取得期望的效果。 a=imread('花.jpg'); subplot(2,2,1); imshow(a); title('原始图像'); subplot(2,2,2); a=rgb2gray(a); imhist(a); title('原始图像直方图'); subplot(2,2,3);

相关主题