使用变换矩阵将图像投影到另一个图像

时间:2019-04-06 08:07:36

标签: matlab computer-vision projection

我需要将一个图像投影到另一个图像的门窗中。

这是家庭作业问题。我尝试使用线性方程式来解决它。 门图像窗口坐标:

$oClient = new Client([
 'host'          => $imap['host'],
'port'          => $account->imap_port_no,
'encryption'    => $ssl,
'validate_cert' => true,
'username'      => $account->user_name,
'password'      => $account->password,
]);

$oFolder = $oClient->getFolder($folder_name);
$oMessage = $oFolder->getMessage($message_id, null, null, true, true, true);

$test = $oMessage->getImgSrc();
    //or this
$test = $oMessage->getContentBase64Encoded();

我要投影坐标的图像:

Top left corner = (188,155)
Top Right corner = (343,177)
Bottom left corner = (186,462)
Bottom right corner = (343,432)

我将方程式设为:

Top left corner = (0,0)
Top Right corner = (499,0)
Bottom left corner = (0,507)
Bottom right corner = (499,507)

运行时,我只会得到一个点,但这不应该是那个

1 个答案:

答案 0 :(得分:0)

似乎您正确地导出了同构矩阵。但是您对该矩阵中的值有模糊的想法。

值188和155将您的图像向右平移188点,向下平移155点。这就是为什么输出为空的原因。因为图像被移到了在输出窗口中不可见的区域。

您针对较大的图像导出了变换矩阵,从而使这些偏移值变大了。设为0。

为了使转换后的图像可见,您需要使转换矩阵如下:

tm=[0.311 -0.003 0;0.044 0.605 0;0 0 1]

我想这将解决您的问题。