有关图像拼接(基于像素点颜色特征)的程序实现
我现在要做的程序是用opencv实现基于像素点颜色变化特征的图像拼接(现在比较不流行这种算法,可是毕设要求用这种算法),具体算法是:
1.从第一张图片重合区(重合区应该用怎样的算法确定)中从上到下逐行取一行水平像素点作为样本像素点线段,把所取样本像素点线段上的所有像素点的RGB值转换为灰度值。
2.求出像素点线段上所有像素点的灰度平均值,然后再求出它的灰度均方差。
3.对所选样本像素点线段的均方差给定一个阈值,若被选取线段上的均方差小于这个阈值,就放弃,再转至步骤(1)往下取一行。目的是保证被选取线段上的像素点变化相对于平均值的跳动比较大,即各个像素点灰度值离平均值中心散布越大越好。这样,线段上像素点颜色变化多,其特征也就明显,就越易于获得准确的匹配。
4.)如果找到符合要求的像素点线段,则把它作为模板像素点线段,并将这条模板像素点线段的均方差作为与第二张图片匹配的比较模板。第二张图片的比较区域取为模板线段对应第二张图片相应位置的一定区域,这样可减少大量的无效匹配,提高匹配精度和比较速度。在把第二张图片比较区域内像素点的RGB值转换为灰度值后,再进行像素点线段采样,同前面采用处理模板像素点线段的方法一样进行处理,处理后得到的均方差与比较模板相比,其偏差值最小线段即为最佳匹配线段。
总的算法就是这样,我希望大家帮帮忙说一下整体的编程思路应该是什么样的,比如重合区用什么算法确定 具体哪步都需要怎么样,如果能帮忙指点一下程序更好了,实在是新手,还没入门,希望大家多多指点啊!!!!!