我是matlab的新手,我正在尝试编写一个可以将手写数字从平方页面背景中分离出来的代码。我曾尝试使用 kmeans 来区分线条和 squers 的数字,但它不适用于所有图像。有什么想法我该怎么做?太棒了!
问问题
337 次
1 回答
2
我在 R 中使用 EBImage 包,但我相信你可以在 matlab 中找到等效的包:
从原始图像开始:
# 读取并提取灰度图像 # 用 3 个中心运行 kmeans km = kmeans(as.vector(x), 3) c = km$centers # 1 0.4936797 # 2 0.2841005 # 3 0.6456494 # 提取最小的簇 2(你的数字)作为二值图像 t = (km$cluster==2) r = 矩阵(t, nrow(x))
r 现在看起来像:
# 应用具有最小可能结构元素的形态开口(腐蚀然后膨胀) kern = makeBrush(3, 'box') #[,1] [,2] [,3] #[1,] 1 1 1 #[2,] 1 1 1 #[3,] 1 1 1 z = openingGreyScale(r, kern)
z 现在看起来像
于 2013-05-03T20:13:35.087 回答