matlab中niblackmatlab图像二值化处理如何优化?

 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
阈值分割之Niblack方法的实现(毕业论文doc)
下载积分:1000
内容提示:
文档格式:DOC|
浏览次数:4|
上传日期: 02:50:26|
文档星级:
该用户还上传了这些文档
阈值分割之Niblack方法的实现(毕业论文doc).DOC
官方公共微信申明,本文非笔者原创,原文转载自:
最近一直在研究图像分割技术,越研究觉得越有意思。这里所说的研究其实也只是研究别人论文然后自己实现一下而已罢了。。。
图像分割就是把图像中的各个部分分开,能区分出哪里是前景,哪里是背景,如果前景和背景分别用0和1表示,那就是叫做图像二值化了。但是图像分割也不仅仅限于二分,可以任意多的分。从这个角度讲二值化是图像分割结果的一种表示而已,只不过二分研究的比较多,也比较容易些。
至于分割的方法有很多种,比较粗的分类可以分为全局和局部的。全局方法就是一个阈值,像素值大于此值的为1,小于此值的为0。局部方法就是对每一个像素求阈值。Niblack方法就是局部方法中的一种,它根据以像素点为中心的邻域内的点的情况为此像素计算阈值。下面是每个像素阈值的计算公式,m是方差,s是标准差。
看起来还是比较简单的,下面是实现这个算法的matlab代码:
g=segNiBlack(f,w2,k)
segmentation method using&Niblack
thresholding method
input: w2 is&the
half width of the window
= 2*w2 + 1;
= ones(w, w);
compute sum of pixels in&WxW
= conv2(f, window, 'same');
convert to mean
= w^2;&&&&&&&&&&& % number of pixels in&window
compute the std
compute sum of pixels squared in&WxW
= conv2(f.^2, window, 'same');
convert to std
(n*sp2 - sp.^2) / n / (n-1);
= sqrt(var);&
compute Niblack threshold
= m + k *
函数的输入f是要二值化的图像,w2是窗口大小的一半,k就是系数。代码里面的conv2是卷积,将图像矩阵与全1矩阵做卷积,其实就是再求这个窗口内像素的和。这样做速度比较快,比一个像素一个像素的遍历速度快10多倍。
Niblack还算是一种比较常用的二值化算法,算法简明,速度较快,效果也不错,经常用在文本图像的文字与背景分割中。下面就拿我用手机照纸上的一些文字,测试一下。
左:用手机照的一篇打印的论文中的文字 &右:用Niblack算法进行文本分离的结果
可以看到背景有些噪点,文字有些地方连了起来,但是整体效果还不错,为了取得更好的结果,通常预处理和后续处理是必不可少的环节。看起来有点模糊的是因为图片太大为了放到文章里我给它缩小了一下。
代码和参数如下:
tf=imread('/mydb/tests/paperwords.jpg');
tf=rgb2gray(tf);
tf=double(tf);
tf=medfilt2(tf,[5,5]);
gb2=segNiBlack(tf,32,0.01);
gb2=medfilt2(gb2,[7,7]);
figure();imshow(gb2);
Niblack二值化算法是比较简单的局部阈值方法,阈值的计算公式是T = m + k*v,其中m为以该像素点为中心的区域的平均灰度值,v是该区域的标准差,k是一个系数,matlab程序如下:
[c-sharp]&
上述程序中选择的窗口大小是5*5,处理结果不好,产生了大量的噪声...
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:354232次
积分:5334
积分:5334
排名:第1941名
原创:127篇
转载:402篇
评论:71条
(1)(2)(5)(4)(4)(3)(1)(8)(11)(21)(14)(35)(11)(10)(3)(53)(29)(6)(35)(7)(32)(36)(7)(28)(58)(21)(58)(26)matlab实现的二值化二值化,实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
matlab实现的二值化
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口1462人阅读
申明,本文非笔者原创,原文转载自:
最近一直在研究图像分割技术,越研究觉得越有意思。这里所说的研究其实也只是研究别人论文然后自己实现一下而已罢了。。。
图像分割就是把图像中的各个部分分开,能区分出哪里是前景,哪里是背景,如果前景和背景分别用0和1表示,那就是叫做图像二值化了。但是图像分割也不仅仅限于二分,可以任意多的分。从这个角度讲二值化是图像分割结果的一种表示而已,只不过二分研究的比较多,也比较容易些。
至于分割的方法有很多种,比较粗的分类可以分为全局和局部的。全局方法就是一个阈值,像素值大于此值的为1,小于此值的为0。局部方法就是对每一个像素求阈值。Niblack方法就是局部方法中的一种,它根据以像素点为中心的邻域内的点的情况为此像素计算阈值。下面是每个像素阈值的计算公式,m是方差,s是标准差。
看起来还是比较简单的,下面是实现这个算法的matlab代码:
g=segNiBlack(f,w2,k)
segmentation method using&Niblack
thresholding method
input: w2 is&the
half width of the window
= 2*w2 + 1;
= ones(w, w);
compute sum of pixels in&WxW
= conv2(f, window, 'same');
convert to mean
= w^2;&&&&&&&&&&& % number of pixels in&window
compute the std
compute sum of pixels squared in&WxW
= conv2(f.^2, window, 'same');
convert to std
(n*sp2 - sp.^2) / n / (n-1);
= sqrt(var);&
compute Niblack threshold
= m + k *
函数的输入f是要二值化的图像,w2是窗口大小的一半,k就是系数。代码里面的conv2是卷积,将图像矩阵与全1矩阵做卷积,其实就是再求这个窗口内像素的和。这样做速度比较快,比一个像素一个像素的遍历速度快10多倍。
Niblack还算是一种比较常用的二值化算法,算法简明,速度较快,效果也不错,经常用在文本图像的文字与背景分割中。下面就拿我用手机照纸上的一些文字,测试一下。
左:用手机照的一篇打印的论文中的文字 &右:用Niblack算法进行文本分离的结果
可以看到背景有些噪点,文字有些地方连了起来,但是整体效果还不错,为了取得更好的结果,通常预处理和后续处理是必不可少的环节。看起来有点模糊的是因为图片太大为了放到文章里我给它缩小了一下。
代码和参数如下:
tf=imread('/mydb/tests/paperwords.jpg');
tf=rgb2gray(tf);
tf=double(tf);
tf=medfilt2(tf,[5,5]);
gb2=segNiBlack(tf,32,0.01);
gb2=medfilt2(gb2,[7,7]);
figure();imshow(gb2);
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1147119次
积分:12948
积分:12948
排名:第353名
原创:167篇
转载:133篇
评论:977条
(5)(6)(3)(7)(8)(8)(7)(9)(11)(10)(7)(4)(10)(1)(8)(14)(12)(7)(1)(12)(6)(5)(16)(8)(5)(5)(5)(8)(2)(4)(4)(4)(5)(4)(4)(5)(5)(5)(2)(4)(1)(5)(6)(11)(10)(4)(6)(3)(1)NiblackLocalThreshold 这个函数用来计算N 局部阈值, 算法在二值化中很有用 Special Effects 图形图像处理 215万源代码下载-
&文件名称: NiblackLocalThreshold& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 28
&&提 供 者:
&详细说明:这个函数用来计算N Black局部阈值,这个算法在二值化中很有用-Calculate N Black local threshold
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&NiblackLocalThreshold.m
&[]:一般,勉强可用
&近期下载过的用户:
&输入关键字,在本站215万海量源码库中尽情搜索:
&[] - 利用类别方差法对灰度图象进行二值法。比全局和局部阈值效果好。
&[] - 形态学的纹理分割:先闭操作,再开操作,再二值化,便可将纹理分出
&[] - 灰度图像二值化比较经典的算法,包括otsu方法和局部阈值法。
&[] - 局部二值化算法Niblack的C++实现,VC2005开发环境,可以直接嵌入到自己的项目中使用(要使用ATL中的CImage类)
&[] - 在 matlab中实现一种局部阈值化图像的算法
&[] - 在 matlab中实现一种局部阈值化图像的算法
&[] - 自已编写的求二值化阈值的函数.用5*5模板求局部灰值的平方各,然后求3*3邻域内的灰度熵,通过求熵的最大值对应的灰度值,来求阈值.
&[] - 不均匀光照下的文字分割,综合运用同态滤波方法、Bernsen局部阈值法、边缘识别法。
&[] - 对图像进行二值化,采用的算法为Bersen算法,可以作为学习参考。
&[] - 局部二值化算法Niblack的C++实现,VC2005开发环境,可以直接嵌入到自己的项目中使用(要使用ATL中的CImage类)

我要回帖

更多关于 matlab二值化函数 的文章

 

随机推荐