随笔分类 -  Python

摘要:1、f 散度(f-divergence) KL-divergence 的坏处在于它是无界的。事实上KL-divergence 属于更广泛的 f-divergence 中的一种。 如果P和Q被定义成空间中的两个概率分布,则f散度被定义为: 一些通用的散度,如KL-divergence, Helling 阅读全文
posted @ 2017-06-20 16:35 denny402 阅读(34631) 评论(0) 推荐(3) 编辑
摘要:概率分布之间的距离,顾名思义,度量两组样本分布之间的距离 。 1、卡方检验 统计学上的χ2统计量,由于它最初是由英国统计学家Karl Pearson在1900年首次提出的,因此也称之为Pearson χ2,其计算公式为 其中,Ai为i水平的观察频数,Ei为i水平的期望频数,n为总频数,pi为i水平的 阅读全文
posted @ 2017-06-19 21:54 denny402 阅读(11336) 评论(1) 推荐(2) 编辑
摘要:接上一篇:http://www.cnblogs.com/denny402/p/7027954.html 7. 夹角余弦(Cosine) 也可以叫余弦相似度。 几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。 (1)在二维空间中向量A(x1,y1)与向量B( 阅读全文
posted @ 2017-06-16 18:24 denny402 阅读(17704) 评论(0) 推荐(1) 编辑
摘要:1. 欧氏距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。 (1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离: (2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: (3)两个n维向量a 阅读全文
posted @ 2017-06-16 15:59 denny402 阅读(66310) 评论(0) 推荐(5) 编辑
摘要:骨架提取与分水岭算法也属于形态学处理范畴,都放在morphology子模块内。 1、骨架提取 骨架提取,也叫二值图像细化。这种算法能将一个连通区域细化成一个像素的宽度,用于特征提取和目标拓扑表示。 morphology子模块提供了两个函数用于骨架提取,分别是Skeletonize()函数和media 阅读全文
posted @ 2016-01-28 20:29 denny402 阅读(58973) 评论(0) 推荐(4) 编辑
摘要:形态学处理,除了最基本的膨胀、腐蚀、开/闭运算、黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等。 1、凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含在内。 函数为: skimage.morphology.convex_hull_image(imag 阅读全文
posted @ 2016-01-28 14:53 denny402 阅读(81285) 评论(7) 推荐(7) 编辑
摘要:在前面的python数字图像处理(10):图像简单滤波 中,我们已经讲解了很多算子用来检测边缘,其中用得最多的canny算子边缘检测。 本篇我们讲解一些其它方法来检测轮廓。 1、查找轮廓(find_contours) measure模块中的find_contours()函数,可用来检测二值图像的边缘 阅读全文
posted @ 2016-01-26 16:59 denny402 阅读(41004) 评论(2) 推荐(4) 编辑
摘要:在极坐标中,圆的表示方式为:x=x0+rcosθy=y0+rsinθ圆心为(x0,y0),r为半径,θ为旋转度数,值范围为0-359如果给定圆心点和半径,则其它点是否在圆上,我们就能检测出来了。在图像中,我们将每个非0像素点作为圆心点,以一定的半径进行检测,如果有一个点在圆上,我们就对这个圆心累加一... 阅读全文
posted @ 2016-01-26 13:36 denny402 阅读(14178) 评论(1) 推荐(0) 编辑
摘要:在图片处理中,霍夫变换主要是用来检测图片中的几何形状,包括直线、圆、椭圆等。在skimage中,霍夫变换是放在tranform模块内,本篇主要讲解霍夫线变换。对于平面中的一条直线,在笛卡尔坐标系中,可用y=mx+b来表示,其中m为斜率,b为截距。但是如果直线是一条垂直线,则m为无穷大,所有通常我们在... 阅读全文
posted @ 2016-01-25 20:59 denny402 阅读(15501) 评论(2) 推荐(1) 编辑
摘要:本文提供更多更强大的滤波方法,这些方法放在filters.rank子模块内。这些方法需要用户自己设定滤波器的形状和大小,因此需要导入morphology模块来设定。1、autolevel这个词在photoshop里面翻译成自动色阶,用局部直方图来对图片进行滤波分级。该滤波器局部地拉伸灰度像素值的直方... 阅读全文
posted @ 2016-01-15 13:39 denny402 阅读(15821) 评论(0) 推荐(1) 编辑
摘要:对图像进行形态学变换。变换对象一般为灰度图或二值图,功能函数放在morphology子模块内。1、膨胀(dilation)原理:一般对二值图像进行操作。找到像素值为1的点,将它的邻近像素点都设置成这个值。1值表示白,0值表示黑,因此膨胀操作可以扩大白色值范围,压缩黑色值范围。一般用来扩充边缘或填充小... 阅读全文
posted @ 2016-01-15 11:01 denny402 阅读(22336) 评论(0) 推荐(3) 编辑
摘要:图形包括线条、圆形、椭圆形、多边形等。在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了。1、画线条函数调用格式为:skimage.draw.line(r1,c1,r2,c2)r1,r2: 开始点的行数和结束点的行数c1,c2: 开始点的列数和结束点的列数返回当前绘制图形上所有点... 阅读全文
posted @ 2016-01-14 19:04 denny402 阅读(18685) 评论(0) 推荐(0) 编辑
摘要:图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。在skimage库中,阈值分割的功能是放在f... 阅读全文
posted @ 2016-01-14 17:50 denny402 阅读(37108) 评论(1) 推荐(7) 编辑
摘要:对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声;另一种是微分算子,可以用来检测边缘和特征提取。skimage库中通过filters模块进行滤波操作。1、sobel算子sobel算子可用来检测边缘函数格式为:skimage.filters.sobel(image,mask=None)fr... 阅读全文
posted @ 2016-01-12 18:28 denny402 阅读(28506) 评论(1) 推荐(4) 编辑
摘要:在图像处理中,直方图是非常重要,也是非常有用的一个处理要素。在skimage库中对直方图的处理,是放在exposure这个模块中。1、计算直方图函数:skimage.exposure.histogram(image,nbins=256)在numpy包中,也提供了一个计算直方图的函数histogram... 阅读全文
posted @ 2016-01-12 16:42 denny402 阅读(55021) 评论(2) 推荐(1) 编辑
摘要:图像亮度与对比度的调整,是放在skimage包的exposure模块里面1、gamma调整原理:I=Ig对原图像的像素,进行幂运算,得到新的像素值。公式中的g就是gamma值。如果gamma>1, 新图像比原图像暗如果gamma<1,新图像比原图像亮函数格式为:skimage.exposure.ad... 阅读全文
posted @ 2016-01-12 15:12 denny402 阅读(46712) 评论(1) 推荐(5) 编辑
摘要:图像的形变与缩放,使用的是skimage的transform模块,函数比较多,功能齐全。1、改变图片尺寸resize函数格式为:skimage.transform.resize(image,output_shape)image: 需要改变尺寸的图片output_shape: 新的图片尺寸from s... 阅读全文
posted @ 2016-01-12 13:55 denny402 阅读(55919) 评论(2) 推荐(0) 编辑
摘要:有些时候,我们不仅要对一张图片进行处理,可能还会对一批图片处理。这时候,我们可以通过循环来执行处理,也可以调用程序自带的图片集合来处理。图片集合函数为:skimage.io.ImageCollection(load_pattern,load_func=None)这个函数是放在io模块内的,带两个参数... 阅读全文
posted @ 2016-01-12 11:23 denny402 阅读(44753) 评论(10) 推荐(2) 编辑
摘要:实际上前面我们就已经用到了图像的绘制,如: io.imshow(img) 这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据。因此,我们也可以这样写: import matplotlib.pyplot as plt plt.imshow(i 阅读全文
posted @ 2016-01-11 21:21 denny402 阅读(145573) 评论(1) 推荐(17) 编辑
摘要:一、图像数据类型及转换在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:Data typeRangeuint80 to 255uint160 to 65535uint320 to 232float-1 to 1 o... 阅读全文
posted @ 2016-01-11 19:29 denny402 阅读(62330) 评论(2) 推荐(5) 编辑