图像拼接

图像拼接步骤
1. 对每幅图像进行特征点提取
2. 对特征点进行匹配
3. 进行图像配准(图像配准是指在两幅图像相应点之间建立一个一一映射的过程,也就是说,将两副图像中对应与空间同一位置的点联系起来,这里的映射一般成为变换,这一步要找变换矩阵)
4. 把一幅图像拷贝到另一幅图像的特定位置
5. 对重叠边界进行特殊处理
图像匹配,要将待匹配图像转换到同一坐标系下。5
图像拼接的主要思想是图像匹配,匹配的算法有
– 基于区域的算法(空间像素和频域像素)
– 基于特征的算法()

1、特征点角点检测
CV.cornerHarris()(图像的大小比例会影响点检测效果)
2、为了解决上述问题,需要一种与图像比例无关的角点检测方法,如SIFT(而关键点可以有DOG检测,SIFT不检测关键点,它会计算一个特征向量来描述关键点周围的情况,)

SIFT算法


高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板与原图像做卷积运算,达到模糊图像的目的。

    img =cv2.imread("image/qipan.jpg")
    gray =cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    sift = cv2.xfeatures2d.SIFT_create()
        keypoints,descriptor =sift.detectAndCompute(gray,None)
        img =cv2.drawKeypoints(image=img,outImage=img,keypoints=keypoints,flags=4,color=(0,0,255))
        while(True):
            cv2.imshow('keypoint',img)
            if cv2.waitKey(10)& 0xff ==ord("q"):
                break
        cv2.destroyAllWindows()

由于sift算法和surf算法受到专利保护,所以,这2个算法在opencv-contrib-python模块中,在开始我安装这2个模块后,调用sitf函数出现下面问题:
AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d'
后来在网上找到答案:

于是,我降低了opencv-pythonopencv-contrib-python的版本

SURF算法

SURF(快速hessian算法+SURF,hessian算法是检测关键点,SURF用于提取周围特征)
1. 确定积分图像
2. 构建尺度空间
3. 尺度空间中确定极值点
4. 确定关键点方向
5. 生成关键点描述符

SURF在SITF基础上上发展来的,主要在尺度空间构造上做了改进将高斯二阶微分模板的滤波过程进行简化,转化成了对积分图形之间的算术运算过程,因此积分凸显给的运用是算法体术的原因之一
ORB特征检测(FAST关键点检测技术+BRIEF描述符技术,描述符不是特征检测算法,关键点描述符也是图像的恶意总表示,

0

发表评论

电子邮件地址不会被公开。