我需要将一个图像投影到另一个图像的门窗中。
这是家庭作业问题。我尝试使用线性方程式来解决它。 门图像窗口坐标:
$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)
运行时,我只会得到一个点,但这不应该是那个
答案 0 :(得分:0)
似乎您正确地导出了同构矩阵。但是您对该矩阵中的值有模糊的想法。
值188和155将您的图像向右平移188点,向下平移155点。这就是为什么输出为空的原因。因为图像被移到了在输出窗口中不可见的区域。
您针对较大的图像导出了变换矩阵,从而使这些偏移值变大了。设为0。
为了使转换后的图像可见,您需要使转换矩阵如下:
tm=[0.311 -0.003 0;0.044 0.605 0;0 0 1]
我想这将解决您的问题。