读书人

VB怎么获取图片里面的矩型并保存

发布时间: 2012-04-25 19:32:32 作者: rapoo

VB如何获取图片里面的矩型并保存?
假设我现在有个BMP图片,里面有N个由黑色边框组成的矩型,我如何能通过代码来获取这N个矩型,并保存在RECT变量里呢?谢谢!

最好提供代码,衷心感谢!

[解决办法]
那只能判断这黑色边框的像素了.

不过还有一个简单的办法,就是模式识别,调用OpenCV库吧.

记得以前有人发了个VB的示例,能识别圆和方框,并返回其参数,如圆心或长宽等,找找吧
[解决办法]
个人看法:问题的关键在于怎么识别你要的区域?保存都好说。
[解决办法]
http://topic.csdn.net/u/20111020/10/761040d8-db59-4a49-9add-c3153a7dfe82.html
好像和这个帖子差不多
[解决办法]
企鹅大人请把BMP图片贴出来~~,这样大家才好提供思路代码啊~
[解决办法]
楼主你是否希望下面两个区域得到一样的结果呢?

[解决办法]
哈哈花了一晚上终于从自己的验证码识别模块中抠出几个功能,重写程序,已经可以达到要求了,哈哈


代码和具体细节还是你自己完成吧,虽然我有代码,但是我可以提供思路

这里假设获取最大矩形,这里的最大矩形是不包含于任意其他矩形,可以这样做

1)将原图二值化读入字节数组
2)设定一个合适阈值C,用广度优先搜索,找到的连通区域如果总像素小于该阈值C,标记为白色
3)提取黑白交界的边缘线,并根据连通性分成几个互不连通的区域
4)霍夫变换得到矩形边所在直线的 直线集合
5)每次取出一条未使用的最长的矩形边,并标记为已使用,用这条矩形边和其他未使用的矩形边扩充成一个最大的矩形,
若该矩形不完全包含于任何一个已经保存下的矩形,则保存该矩形信息
6)重复步骤5,直到没有未使用的矩形边

原图:

提取的边界:

设置阈值的霍夫变换结果:

[解决办法]
二值化就是将Picture转换成一个二维数组,
霍夫变换参看:http://blog.csdn.net/tt2com/article/details/4757071

读书人网 >VB

热点推荐