秦皇岛90后按摩会所:用C++或C语言实现图象识别

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 02:10:13
给定一个较大的图象文件t.bmp,要求判断另外一个较小图象文件(t1.bmp、t2.bmp、t3.bmp)是否包含在大图象t.bmp中。
要求:1、能较方便的对给定的其他图象进行判断;
2、程序能分别指出大图象和小图象的宽和高
3、给出判断结论,(1)是否包含?(2)若包含,即在较大图象中能找到一个区域与小图象匹配
则给出这个区域在大图象中的位置(起始点坐标)。

1.将全部三个图像的 BMP 24Bits 全彩色位图数据整理成 long 型,BMP_Color_Data[i*m + j] = 65536*Blu[m][n] + 256*Gre[m][n] + Red[m][n] ...........二维图像数据保存成一维的 long 型数据串。

2.将小图像的位图数据按照大位图数据的行数为“周期” T 扫描,即将小位图的第一行 long 数据串作为样本,在大位图数据中寻找匹配段:如果有,则记录“部分匹配标志(即部分包含,交集关系)”按照那个周期 T 直接到下一“段”检查是否匹配,直至扫描完全样本数的段,如果全部符合匹配条件,则置“完全匹配标志(即完全包含,子集关系)”....在此任何段中,如果不匹配,则 break ;

3.结论:有交集关系则为部分包含,有子集关系则有完全包含。

起始坐标比较好计算,即开始数据串的位置数,分解成大图的行列数。