求助--图片判断(最简单的识别)
需要识别几个图片
图片:每个图片非常小,只有一个字符,字符确定(标准且规范的标点或数字)
思路1:二级制对比,完全相同的图片,他们的二级制文件应该也是相同的
经测试,此法不行,图片看似一样但是有细微的差别,比如说这张图片的1靠左了一点点
思路2:点阵识别
不知如何下手,没有图形处理的经验,不知该用那些函数 大家谁能给些资料 我可以自己研究
图片示例(囧:左上角):
http://i3.hdfimg.com/www/images/giftrans/1e/87/cf/1582.gif
http://i3.hdfimg.com/www/images/giftrans/a2/42/d0/14742.gif
图片是类似ICON 镂空的位图
谢谢
[解决办法]
个人思路:
1、url=http://download.csdn.net/detail/veron_04/3612323]VB 实现两个文件的比较(不限文件格式)[/url]
2、如果是两个图片文件进行相似度的比较,那么简单的办法可以采用对图片上相对应的点进行颜色偏差对比。颜色偏差的算法是:((R1-R2)^2+(G1-G2)^2+(B1-B2)^2)^0.5>K ,0<=K<=255,大于K,表示两点颜色不相近,小于K表示颜色相近。依次算法对图片进行多点比较。如果全部相近,就表示图片相似。具体参阅:http://topic.csdn.net/u/20070919/16/3f12eaef-01f2-4e71-9804-99848665028e.html
3、使用OpenCV
[解决办法]
图片小、又是黑白双色,而且字体规范,直接用 VB 内置函数就能处理:
LoadPicture() 载入图片
PictureBox.PaintPicture() 显示图片
PictureBox.Point() 取得某个坐标的颜色,因为是双色图,所以将颜色直接与 vbBlack 比较就可以区分是该点是黑色还是白色。
先对图片进行逐点扫描,求出
x1 —— 最小的黑点x坐标
x2 —— 最大的黑点x坐标
y1 —— 最小的黑点y坐标
y2 —— 最大的黑点y坐标
区域 (x1,y1)-(x2,y2) 就是字符的有效区域
两个图片如果有效区域的大小不等,那么肯定不等;如果大小相等,就对有效区域进行逐点比较。