将热像仪坐标转换为可视像机坐标

时间:2019-05-08 13:58:23

标签: c#

我有一个DJI Mavic 2 Enterprise Dual,配备640px x 480px的热红外传感器,水平视场(视角)为57度x垂直视场为42.75度。我想将这个传感器的坐标转换为水平视场角为84.92度,垂直视场角为72.45度和4056px x 3040px的可见摄像机。

我已经写了一些代码,我相信问题出在翻译坐标的函数中。

thermalCoordinate [0]是X值,thermalCoordiante [1]是Y值,这是该函数的输入。

int[] returnValues = new int[2];

double horisontalOffset = (((double) visualCamera.horisontalFOV - (double) thermalCamera.horisontalFOV) / 2) / 100;
double verticalOffset = (((double) visualCamera.verticalFOV - (double) thermalCamera.verticalFOV) / 2) / 100;

double thermalXPercentage = (double) thermalCoordinates[0] / (double) thermalCamera.horisontalPixelNumber;
double thermalYPercentage = (double) thermalCoordinates[1] / (double) thermalCamera.verticalPixelNumber;

double visualXCoordinate = (((1 - (2 * horisontalOffset)) * (double) visualCamera.horisontalPixelNumber) * thermalXPercentage) + (horisontalOffset * (double) visualCamera.horisontalPixelNumber);
double visualYCoordinate = (((1 - (2 * verticalOffset)) * (double) visualCamera.verticalPixelNumber) * thermalYPercentage) + (verticalOffset * (double) visualCamera.verticalPixelNumber);

returnValues[0] = (int) visualXCoordinate;
returnValues[1] = (int) visualYCoordinate;

return returnValues;

我得到的结果绘制在图像上方,如此处https://1drv.ms/f/s!AmFxsfnLqGFGivY-5SQqZVC9ky61-w所示 热图像具有完美契合度,其坐标无法转换为可视图像。

0 个答案:

没有答案