SAD立体匹配算法的PYTHON实现
这是第一次发CSDN博客,因为在机器视觉的学习中CSDN帮助了我很多,那么我也应该为CSDN社区做一些贡献,所以本文将介绍我用python实现的SAD匹配算法。
1.SAD算法的原理
SAD算法是立体匹配算法中,隶属于局部区域匹配算法中的一个算法,原理是从
左图
中找出一个小窗口,利用极线约束,在 ** 右图
中同一行中
间隔D为D_1处
找到同样大小的一个小窗口,比方说都是 9*9 大小, 然后比较这个小窗口中每一个像素灰度差是多少,比如说灰度差为x_1,接着
更换间隔D为D_2**,再次计算灰度差x_2,比较灰度差最小的即为右图中的用一位置。
比如左图有一本书,算法可以找到这本书在右图的哪个位置,然后计算这本书在左图和右图中的位置差了多少,就可以计算出距离了
原理我就不多说了,已经有很多算法解释类的博文了,本文专注于算法实现
2.SAD算法的实现
import os
import time
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
from numba import jit
from PIL import Image
#-------------------------------
'''这一部分是读取图片,请输入已经极线校准过的左图和右图,本算法不支持未校准图像的匹配'''