偶就是读入bitmap,然后getbitmapbits,将他们比较。
但发觉,即使两副图实际上是一样的,比如图象上都是一个“A”字,颜色不同,颜色数不同都导致不同。
如何将颜色深度和颜色转换为一样?转换为只有黑白的二值图象似乎最好。
或者有其它办法?大大帮忙了~~~

解决方案 »

  1.   

    如果图片的内容是字符还是用ocr处理一下再比较吧!这样更简单
    如果不是字符的话,好像难度比较高,属于人工智能的范畴,如果只是比较图案的相似性,分析一下频谱可能可以
      

  2.   

    识别扑克?干吗要从图像识别入手?把扑克对应上ID不OK么?
      

  3.   

    这个用些模式识别的思路应该就可以,你不妨试试模板匹配法:
    事先把每张牌抓图,保存为文件,后面当做模板来用;转换为二值图象更快比较合适;
    运行时把屏幕上的牌抠出来,缩放成与模板一样大小,与每个模板求相似性,结果最大的就认为是目标;
    求相似性的方法很多,最简单的一种是逐象素相减(就像两个矩阵相减),然后求差值(绝对值)的平均值,结果越小则相似性越大;
    我看了一下windows里的扑克游戏,只要利用左上角一小部分就够了,包含一个数字和一个花色标志,切出来跟模板一匹配就OK了(模板也取局部),计算量也不大。其实仅仅对于一个数字和一个花色标志,在模式识别中有许多算法可以搞定,比如统计判决、神经网络等。如果你对效率要求高,可以学学其他算法,不妨参考《图像模式识别--VC++技术实现》,应该还有带数字识别源码。