Welcome![Sign In][Sign Up]
Location:
Search - graythresh

Search list

[Special Effectsimage_process

Description: This file include some image process program: void ImResize(IMAGEDATA *pRtImg, IMAGEDATA *pSrImg, int nFixSize) bool CalMoments(float Moments[7], IMAGEDATA *pSrImg) void RGB2Gray(IMAGEDATA *pRtImg, IMAGEDATA *pSrImg) void Im2Bw(IMAGEDATA *pRtImg, IMAGEDATA *pSrImg) float Graythresh(IMAGEDATA *pImgData) void MomentInvar(double Moments[7], IMAGEDATA *ret) bool CalGabor(float Gabor[32], IMAGEDATA *pSrImg) void TexGabor(float Gabor1[MM*NN],float Gabor2[MM*NN],IMAGEDATA *przImg) int FloatSearch(MATRIX *pData, int *nLabels, int d, int delta, int r, TSubset *bset)
Platform: | Size: 12434 | Author: wan_xianglin | Hits:

[SourceCode指纹识别

Description: 摘要:指纹识别技术在各个领域的应用已经逐渐成熟,本文基于信息论中的互信息,在指纹识别的特征选取和识别提出自己的一些想法。 1 引言 指纹是人终身不变的生理特征之一,因其具有惟一性、稳定性以及方便性等独特的特点,使指纹识别成为现在应用最广泛的生物识别技术。 指纹识别系统处理的流程中,指纹图像预处理是第一个处理环节,我沿用已经成熟的去噪,二值化,滤波,细化,对其进行预处理。 互信息作为最终的识别准则来进行指纹的识别。 2 指纹的预处理 般自动指纹识别系统由图像采集、图像预处理、细节点提取和指纹匹 几部分组成。 首先,指纹要通过指纹采集设备(常见的有光学取像设备、超声波扫描取像设备、晶体传感器,现在广泛使用的是晶体传感器)转化为计算机内的数字图像(一般为灰度图)。由于采集过程中难免因手指或仪器的原因 使图像存在较多的噪声,所以对采集到的图像进行增强和滤波,并进一步二值化、细化。 二值化 指纹图像是将灰度图像变成两个灰度级的图像。它的思想是在指纹增强时设定一定的灰度阈值,图像像素灰度与此阈值比较,大于此值的灰度置灰度最大值 255(白色),小于此值的灰度置0(黑色),从而使图像前景和背景彻底分开。对于指纹图像的二值化要用自适应二值化,即灰度阈值的选取不能是固定的,因为利用Matlab强大的图像处理函数不仅省去很多烦琐的编程,而且其中提供的算法能够达到非常好的效果。 Mattab函数代码为: function I—binarization(a) level— graythresh(a): I— im2bw(a,leve1); 滤波也是用到matlab的工具来实现的。 细化 细化处理是指在二值化的指纹图像上,在不影响纹线连通性的基础上删除纹线的边缘像素,直到纹线为单像素宽为止。采用已有的方法 Introduction to Digital Image Processing with Matlab 数字图像处理概论 [美]Alasdair MchAndrew 著,胡小平 缩编 如下图所示 从左到有一次为;原始图像,滤波图像,二值化图像,细化图像; 3 图像的特征提取与识别 指纹分类可以分为固定类别分类方法和连续分类方法 常见的周定类别分类方法是根据指纹的自然形状将指纹分为5类,或扩展为6~8类,这种分类体系称为Henry分类体系。Henry分类体系中重要的分类特 有指纹的奇异点,包括Core点(核心点)和Delta点(三角点),以及指纹方向场和脊线流等。后一些学者又 提出了一种脊线流分布模型用于指纹/奇类,定义了l0种指纹脊线常见的形状模型,通过分析脊线的形状和分布来确定指纹所在的类别,这类分类算法复杂度高,所以基于信息论的互信息来实现。 假定X是离散的随机变量x是集合,概率密度函数是为了方便我们用P(X)来表示概率密度函数而不用Px(x)。因此P(X)和P(y)则代表两个不同的随机变量并且实际上对应着两个不同的概率密度函数,分别是Px(X)和Py(x) 定义变量X的熵H(X)定义为 , 联合熵: 如果一对离散随机变量的联合密度函数是p(x,y),那么,它们的联合熵H(x,y)可以定义为: 也可以描述为: 互信息: 考虑两个随机变量X和Y,联合概率分布函数为p(x,y),边缘概率分布函数为p(x)和p(y)。互信息I(X,Y)为联合分布和分布乘积p(x)p(y)之间的相对熵。 由于互信息是一个随机变量包含另一个随机变量多少的一个量度,是一个随机变量由另一个随机变量的信息其不确定性的减少,应为指纹简单的可分为3类:簸箕,斗,弧,其主要特征判别由指纹的中心决定,所以提出先由图像中心来比较互信息,达到阈值,在扩大范围进行第二次的比较,在判定是否达到阈值,依此比较,达到最后的识别目的,不过此方法对于不同类型的指纹识别效果不错,对于相同类型的效果不好。 所以用一种方法:运用在图像处理中常用的8邻域编码对图像进行脊线跟踪,完成对真细节特征的有效的提取,提取的特征向量格式{x,y,dim},分别为细节特征点的横坐标、纵坐标和方向。计算方向角;计算频率, Gabor滤波实现; G(X Y @ F0)=EXP(-1/2{X^2/Px^2+Y^2/Py^2})cos(2*pi*F0X) [X Y]=[sin() cos() -cos() sin][x y] 特征的提取 Sum(P(1:n))=1 Sum(P(1:n))=3 实现匹配 取临近10个特征点与当前点记录,若有5个一样则匹配 结果中22%出现错误,其余都实现了识别的效果。 4总结 上述识别方法用互信息的成功不高但相信在以后基于互信息的方法来识别指纹是有可能的。 参考文献 Introduction to Digital Image Processing with Matlab 数字图像处理概论 [美]Alasdair MchAndrew 著,胡小平 缩编 【指纹图像预处理和特征提取算法】“李展丹,徐进”;有具体的实现方法。
Platform: | Size: 422225 | Author: sasigi | Hits:

[Special Effectsimage_process

Description: This file include some image process program: void ImResize(IMAGEDATA *pRtImg, IMAGEDATA *pSrImg, int nFixSize) bool CalMoments(float Moments[7], IMAGEDATA *pSrImg) void RGB2Gray(IMAGEDATA *pRtImg, IMAGEDATA *pSrImg) void Im2Bw(IMAGEDATA *pRtImg, IMAGEDATA *pSrImg) float Graythresh(IMAGEDATA *pImgData) void MomentInvar(double Moments[7], IMAGEDATA *ret) bool CalGabor(float Gabor[32], IMAGEDATA *pSrImg) void TexGabor(float Gabor1[MM*NN],float Gabor2[MM*NN],IMAGEDATA *przImg) int FloatSearch(MATRIX *pData, int *nLabels, int d, int delta, int r, TSubset *bset) -This file include some image process program: void ImResize(IMAGEDATA*pRtImg, IMAGEDATA*pSrImg, int nFixSize) bool CalMoments(float Moments[7], IMAGEDATA*pSrImg) void RGB2Gray(IMAGEDATA*pRtImg, IMAGEDATA*pSrImg) void Im2Bw(IMAGEDATA*pRtImg, IMAGEDATA*pSrImg) float Graythresh(IMAGEDATA*pImgData) void MomentInvar(double Moments[7], IMAGEDATA*ret) bool CalGabor(float Gabor[32], IMAGEDATA*pSrImg) void TexGabor(float Gabor1[MM*NN],float Gabor2[MM*NN],IMAGEDATA*przImg) int FloatSearch(MATRIX*pData, int*nLabels, int d, int delta, int r, TSubset*bset)
Platform: | Size: 12288 | Author: wan_xianglin | Hits:

[Special Effectsgraythresh_n

Description: 自己写的双阈值分割算法,可以用在多个场合-Write their own dual-threshold segmentation algorithm can be used in a number of occasions
Platform: | Size: 2048 | Author: 李境欣 | Hits:

[Special Effectsgraythresh_n

Description: 可以应用graythresh还获取图像的阈值,应用该阈值可以为图形进行阈值分割,达到很好的分割效果-Can be applied also to obtain images graythresh threshold, the application of the threshold for graphics Thresholding achieve good segmentation results
Platform: | Size: 1024 | Author: zhangzhang | Hits:

[matlabgraythresh

Description: 本文提出的中值滤波的快速算法的基本思想是:原始数据序列上中值滤波的滑窗在移动过程中,当前窗只要删除其最早的元素,加入窗后的新元素,即成为下一窗的内容。这个只是Matlab里封装的算法代码-In this paper, the median filtering of the fast algorithm for the basic idea is: the original data sequence in the sliding window filtering process in the mobile, the current window as long as the deletion of its first element, adding a new element after the window, that is, the next window content.
Platform: | Size: 1024 | Author: 王超群 | Hits:

[Special Effectsgraythresh

Description: 对图像进行高斯滤波,然后用全局阈值对图像进行分割,使用的函数参考冈萨雷斯图像处理-Gaussian filtering of the image and then use the global threshold for image segmentation, using the function reference, image processing Gonzalez
Platform: | Size: 13312 | Author: 刘一霖 | Hits:

[Editorkhalid_khuwaja

Description: Igray = rgb2gray(I) Ibw = im2bw(Igray,graythresh(Igray)) Iedge = edge(uint8(Ibw)) se = strel( square ,3) Iedge2 = imdilate(Iedge, se) Ifill= imfill(Iedge2, holes ) [Ilabel num] = bwlabel(Ifill) Iprops = regionprops(Ilabel) Ibox = [Iprops.BoundingBox] Ibox = reshape(Ibox,[4 50]) Ic = [Iprops.Centroid] Ic = reshape(Ic,[2 50]) Ic = Ic Ic(:,3) = (mean(Ic.^2,2)).^(1/2) Ic(:,4) = 1:50 Extra lines compare to example2 to extract all the components into an cell array Ic2 = sortrows(Ic,2) for cnt = 1:5 Ic2((cnt-1)*10+1:cnt*10,:) = sortrows(Ic2((cnt-1)*10+1:cnt*10,:),4) end Ic3 = Ic2(:,1:2) ind = Ic2(:,4) for cnt = 1:50 img{cnt} = imcrop(Ibw,Ibox(:,ind(cnt))) end -Igray = rgb2gray(I) Ibw = im2bw(Igray,graythresh(Igray)) Iedge = edge(uint8(Ibw)) se = strel( square ,3) Iedge2 = imdilate(Iedge, se) Ifill= imfill(Iedge2, holes ) [Ilabel num] = bwlabel(Ifill) Iprops = regionprops(Ilabel) Ibox = [Iprops.BoundingBox] Ibox = reshape(Ibox,[4 50]) Ic = [Iprops.Centroid] Ic = reshape(Ic,[2 50]) Ic = Ic Ic(:,3) = (mean(Ic.^2,2)).^(1/2) Ic(:,4) = 1:50 Extra lines compare to example2 to extract all the components into an cell array Ic2 = sortrows(Ic,2) for cnt = 1:5 Ic2((cnt-1)*10+1:cnt*10,:) = sortrows(Ic2((cnt-1)*10+1:cnt*10,:),4) end Ic3 = Ic2(:,1:2) ind = Ic2(:,4) for cnt = 1:50 img{cnt} = imcrop(Ibw,Ibox(:,ind(cnt))) end
Platform: | Size: 291840 | Author: honey | Hits:

[Special EffectsMATLAB

Description: matlab开发环境,.编程实现二维DFT的变换,并与标准函数结果fft2进行比较,基本傅里叶、离散余弦变换,空域(完成两个程序) 增强噪声后再进行处理,利用标准函数,求图像阈值分割、边缘检测的基本使用(lena256.bmp,方法:graythresh、edge),求分水岭,利用标准函数dwt2、idwt2分解图像man_pic.jpg,基本 BP-BPbase1 -matlab development environment. Programming dimensional DFT transform, and with the standard functions compare results fft2 basic Fourier, discrete cosine transform, airspace (to complete the two programs) to enhance the noise and then processed using standard functions for image thresholding, edge Detection of basic use (lena256.bmp, method: graythresh, edge), seeking watershed, using a standard function dwt2, idwt2 decomposed image man_pic.jpg, basic BP-BPbase1
Platform: | Size: 1909760 | Author: 杨恒明 | Hits:

[File Formathweofh

Description: 计算梯度 grad = mat2gray(grad) 将梯度矩阵转换为灰度图像 level = graythresh(grad) 计算灰度阈值 BW = im2bw(grad,level) 用阈值分割梯度图像 subplot(2,4,2) imshow(BW) 显示分割后的图像即边缘图像 -S VKJSJK
Platform: | Size: 166912 | Author: 罗金雄 | Hits:

[Graph program070216001于浩然11

Description: 1. 用函数graythresh()和im2bw()对图像进行阈值分割; 2. 用GUIDE界面编程实现Otsu阈值分割过程。(1. thresholding the image using function graythresh () and im2bw (). 2. using GUIDE interface programming to achieve Otsu threshold segmentation process)
Platform: | Size: 706560 | Author: HoNestaa | Hits:

CodeBus www.codebus.net