如何在一个二维平面上去寻找是否存在某个图形?
有两张图片(bmp格式的)A.bmp是从B.bmp中截取出来的一部分现在想编写一个函数实现这样的功能:
读入两张BMP图片,
然后判断A.bmp是否是B.bmp中的一部分看模式匹配看了好久都没搞懂.因为他们讲的都是理论
有没有哪位高人给点源码(注释下更好~~~)
模式匹配弄得人头晕晕.....要是不用也能实现那多好啊~~~
盼望.....

解决方案 »

  1.   

    拿A的第一行数据来搜索,如果查找到B中有一段数据匹配,则查找下一行的数据是否匹配,一直到A的最后一行则找到B中的A。
      

  2.   

    根据条件:A.bmp是从B.bmp中截取出来的一部分
    假设两图象都是矩形的;假设图象没有经过旋转,即只有平行移动,假设A[m1][m2]是存放A.bmp图象所有象素的结构数组,B[n1][n2]是存放B.bmp图象所有象素的结构数组,那么简单的从B[n1][n2]中查找是否存在A[m1][m2]即可。(用矩阵表示就是是否存在子阵)如果图象经过了旋转和平移,那可以将B.bmp先按照不同角度进行旋转,得到新的图象,在用上面方法尝试,要尝试各种角度的吆!实际这样做太低效率了。如果A.bmp有明显、特别的标记,比如一个圆形或十字等,就先从这些标记开始查找。提高效率。
      

  3.   

    首先感谢rover___() 和zuzubo(kewen)给我帮助
    我现在的想法是这样的.
    如下图所示:
    在先把A.bmp中边框和对角线的像素读出来放到数组里.
    然后以此为特征在B.bmp里进行搜索
    呵呵,有点像杀毒软件的特征码扫描算法吧.. ------/--
    | \   /  |
    |   \/   | 
    |   / \   
     __/____\|等我把代码编好后
    一定贴上来