Input: A pair of rectified images and from different viewpoints of one scene; |

Set the values of *ratio*, , and . |

Output: The disparity map with respect to . |

Begin: |

*Step 1*. Finding initial point correspondences by using state-of-the-art matching method; |

*Step 2*. Using the mean-shift to partition the image to different areas denoted as: ; |

*Step 3*. Assigning the points into the corresponding area ; |

*Step 4*. Removing the coarse mismatches in the area by using regional affine transformation; |

*Step 5*. Computes gradient of each pixel in the image and selects the pixels |

* *whose gradient as our candidate feature points; |

*Step 6*. Assign each feature to a corresponding label ; |

*Step 7*. The first step for the matched feature expansion |

*Repeat*: |

* *for: : size() |

ensure via to: ; |

find a set of samples , where ; |

if: size |

compute the point by estimation model via cross ratio; |

end if |

* *end for |

*Until * is empty |

*Step 8*. The second step expansion by using a regular seed-growing method |

*Step 9*. Obtain dense disparity map by using fitting process or synthesized method |