人工智能是当下很热门的话题,手写识别是一个典型的应用。为了进一步了解这个领域,我阅读了大量的论文,并借助opencv完成了对28x28的数字图片(预处理后的二值图像)的识别任务。 预处理一张图片: 首先采用opencv读取图片的构造函数读取灰度的图片,再采用大津法求出图片的二值化的阈值,并且将图片二 ...
分类:
其他好文 时间:
2016-04-01 20:37:09
阅读次数:
293
转载自einyboy的博文Matlab的regionprops详解 1、 matlab函数bwareaopen──删除小面积对象格式:BW2 = bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。算法:(1)Determine the conn
分类:
其他好文 时间:
2016-03-02 23:48:35
阅读次数:
197
http://blog.csdn.net/lu597203933/article/details/17362457 连通区域指的是二值图像中相连像素组成的形状。而内、外轮廓的概念及opencv1中如何提取二值图像的轮廓见我的这篇博客:http://blog.csdn.net/lu597203933/
分类:
其他好文 时间:
2016-03-01 11:01:19
阅读次数:
164
细化方法当中,当属经典的Zhang并行快速细化算法,细化之后的轮廓走势与原图保持得相对较好。 参照 http://blog.csdn.net/byxdaz/article/details/5642669 , 代码改造结果如下, //将 DEPTH_8U型二值图像进行细化 经典的Zhang并行快速细化
分类:
其他好文 时间:
2016-02-23 20:46:35
阅读次数:
365
先看效果 说明 使用分水岭算法对图像进行切割,设置一个标记图像能达到比較好的效果,还能防止过度切割。 1、这里首先对阈值化的二值图像进行腐蚀,去掉小的白色区域,得到图像的前景区域。并对前景区域用255白色标记 2、相同对阈值化后的图像进行膨胀,然后再阈值化并取反。得到背景区域。并用128灰度表示 3
分类:
编程语言 时间:
2016-02-14 22:07:12
阅读次数:
291
骨架提取与分水岭算法也属于形态学处理范畴,都放在morphology子模块内。 1、骨架提取 骨架提取,也叫二值图像细化。这种算法能将一个连通区域细化成一个像素的宽度,用于特征提取和目标拓扑表示。 morphology子模块提供了两个函数用于骨架提取,分别是Skeletonize()函数和media
分类:
编程语言 时间:
2016-01-28 20:55:33
阅读次数:
434
利用k-近邻分类器实现手写识别系统,训练数据集大约2000个样本,每个数字大约有200个样本,每个样本保存在一个txt文件中,手写体图像本身是32X32的二值图像,如下图所示:
首先,我们需要将图像格式化处理为一个向量,把一个32X32的二进制图像矩阵通过img2vector()函数转换为1X1024的向量:
def img2vector(filename):
retu...
分类:
编程语言 时间:
2016-01-17 14:57:43
阅读次数:
235
对图像进行形态学变换。变换对象一般为灰度图或二值图,功能函数放在morphology子模块内。1、膨胀(dilation)原理:一般对二值图像进行操作。找到像素值为1的点,将它的邻近像素点都设置成这个值。1值表示白,0值表示黑,因此膨胀操作可以扩大白色值范围,压缩黑色值范围。一般用来扩充边缘或填充小...
分类:
编程语言 时间:
2016-01-15 12:57:31
阅读次数:
473
图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。在skimage库中,阈值分割的功能是放在f...
分类:
编程语言 时间:
2016-01-14 18:44:39
阅读次数:
298
图像的二值化:与边缘检测相比,轮廓检测有时能更好的反映图像的内容。而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而...
分类:
其他好文 时间:
2015-11-21 14:24:47
阅读次数:
186