在MATLAB中细化手写字符

6

我希望可以将如下所示的手写字符变细:

enter image description here

以下代码可达到预期效果:

BW = imread('s.png');
BWI = imcomplement(BW);
BW2D = im2bw(BWI,0.1);
BWT = bwmorph(BW2D,'thin',Inf),
BWFinal = imcomplement(BWT);
figure, imshow(BWFinal);

这是正确的方法吗?还是MATLAB有其他的方法可以实现?


8
如果它能给出你预期的结果,那么很可能是正确的方法。 - Shai
4
我希望所有在Stack Overflow上的问题都能够被回答成“是”的形式,就像这个问题一样。 - Ander Biguri
3
我很荣幸能为你翻译!以下是我的翻译:@AnderBiguri - 我的回答是为了向您致敬! - rayryeng
2
@rayryeng 哈哈哈 优秀! - Ander Biguri
2
你已经知道它是正确的。其他方法应该如何不同?性能?可读性?更短?更健壮? - runDOSrun
显示剩余5条评论
2个回答

12
是的。

6
你的回答是迄今为止最启发人心的。 ;) - eigenchris
2
@eigenchris - 哈哈,谢谢。有人不同意我的观点并给了我一个负评,但我只是为了演示而回答的。你需要写一个回答的最小字符数是30个,但我使用了不可见的分隔符来增加字符数。 - rayryeng
2
@rayryeng 最短的获得赏金的答案 :P :P - roni
1
@roni - 如果是这样的话,那肯定是纪录册上的一个。说实话,我不确定为什么会发放赏金哈哈,但如果我最终得到了它,那将是非常有趣的事情。 - rayryeng
2
@rayryeng 我希望你能欣赏一下这个幽默 ;) - Shai
显示剩余7条评论

6
一致的意見是您的代碼沒有問題。但是,为了让Shai的一些观点更加具有可操作性,我添加了一个小注释:
使用`imcomplement`可能不必要,请参阅文档
特别地:
提示 如果IM是double类型的灰度或RGB图像,您可以使用表达式1-IM而不是此函数。
如果IM是二进制图像,则可以使用表达式~IM而不是此函数。

抱歉,赏金最终还是给了我。很抱歉 :(. 顺便说一句,你对我的简洁回答进行了很好的阐述。 - rayryeng
3
@raryreng,正确的答案并不总是最好的答案 ;) 现在我要去角落里哭泣了... - Buck Thorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接