原始鱼眼图:
等距投影by FOV.
等距投影 by FOV and Angle
方法二将在不久并入到 基于双鱼眼的全景视频图像拼接CV算法实战。
我们统一采用opencv remap来加速, 在初始状态建立好remap需要的x坐标对应图和y坐标对应图。只要宽高不变, 每次矫正不耗时。
```python
class CycleToRect(object):
def __init__(self, warp_w=cfg.INPUT_WIDTH, warp_h=cfg.INPUT_HEIGHT, input_w=cfg.INPUT_WIDTH, input_h=cfg.INPUT_HEIGHT, fov=cfg.FOV):
if not(isinstance(warp_w, int) and isinstance(warp_h, int)and isinstance(input_w, int) and isinstance(input_h, int) and isinstance(fov, int)):
LOGGER_T.logger.error('Get CycleToRect class params failed!!!')
raise ValueError("CycleToRect class,init params type is wrong!!!")
self._xmap, self._ymap = _buildmap(warp_w, warp_h, input_w,input_h, fov)
LOGGER_T.logger.info('CycleToRect class Init success and generate xmap,ymap!')
def __call__(self, img):
if self._xmap is None or self._ymap is None:
LOGGER_T.logger.error('Get CycleToRect class xmap or ymap is None!!!')
raise ValueError("CycleToRect class,xmap or ymap is None!!!")
img_rst = cv2.remap(img, self._xmap, self._ymap, cv2.INTER_LINEAR)
return img_rst