http://www.delphi2007.net/DelphiMultimedia/html/delphi_2006121516575256.html
有一组简单图片,这些图片都是扫描进来的。请问如何通过程序识别这些图片?
比如:
图片1:2个长方形纵向排列,类似: | |
图片2:一个圆形,在中间
图片3:3个长方形横向排列,类似:三
等等。。。。
图片中的长方形,圆形等都是实心。
图像识别一个大课题,网上找些资料研究一下
你可以根据图像轨迹来取它的象素颜色,看看是不是一致,是一致说明是你想要的图形
这只有根据具体情况来看了。
yi10000,愿闻其详。
不怎么懂,这样做做看吧。
如果图形都是标准的就好识别。
1 首先把图象二值化。
2 然后用scanline取1列的像素和二值化的阀值比较,来确定图形边界。
3 取边界上的几个点,看它们符合圆形还是长方形的函数。
区分的 可以直接取特征点 比较..
to: baiduan(-_-化杯粪喂力量-_-)
扫描的图像,会有一些偏差。
to:vividw(vividw)
有具体的做法吗?
最好提供一个图样,还有你需要的输出格式
。。只是路过。。
制作了一个简单得图样,请下载:
http://pickup.mofile.com/1581545260340256
这是个大工程,一个人恐怕搞起来太累了!
有没有类似的控件什么的?
图形对于系统来说就是一个序列..
简单的 就比较 序列的 相似度
复杂的 需要 变形和 模型 然后识别..
可以参考 <模式分类>
一言难尽啊!!呵呵!!
顶一下
什么偏差?
黑点?毛刺?线条不直?
"什么偏差?
黑点?毛刺?线条不直?"
可能都有,因为是扫描进来的。 用简单的异或,计算不同点,设置一个阈值,可以勉强能用。是否有更好的方法呢?
黑点 用去噪
毛刺 用细化
这些函数网上很多。
其实毛刺和线条不直都可以这样解决:
如果图形上点和函数确定的点的位置在一定的范围内。
我们可以认为这个点命中。
更好的办法就不会了,
把这个帖子顶2天,
等图形学的高手来看看把。
opencv 里提供了一个绘制轮廓的demo 你看一下 可以先把圆和方的轮廓提取出来比对 然后再分析