# include“Ltimgcor.h”
L_LTIMGCOR_APIL_INTL_Keystone (pBitmap,如此,pOutBitmap)
执行逆透视变换(梯形)在一个图像。
位图句柄指针纠正。
指针指向一个包含四个L_POINT多边形点的位图映射到一个矩形。
指针的指针代表产生的纠正位图的位图句柄。
价值 | 意义 |
---|---|
成功 | 函数是成功的。 |
< 1 | 一个错误发生。指返回代码。 |
频繁、图像捕捉到便携式设备是扭曲的,因为他们是投射到一个表面在一个角度。竖线变成斜等。L_Keystone函数把一个多边形映射到一个矩形(逆透视变换),并可用于正确的角度来看这些图片。
使用L_Keystone或L_ManualPerspectiveDeskew函数如果有平面变形沿三个轴。使用L_UnWarp如果有一个圆柱形的变形函数。
输入如此之
应该包含4多边形点。这些问题将成为矩形的角落和其余的像素相应转移。
这个函数只能处理整个图像。它不支持区域。
这个函数支持12 - 16位灰度和48和64位彩色图像。
必需的dll和库
Win32 x64, Linux。
这个示例加载位图和调整角度的观点。
L_INT KeystoneExample (L_VOID)
{
L_INT nRet;
BITMAPHANDLE LeadBitmap;/ *加载位图句柄保存图像。* /
/ *加载位图,保持文件的比特每像素* /
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“Master.jpg”&LeadBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGR空,空);
如果(nRet ! =成功)
返回nRet;
/ *应用梯形滤波器* /
BITMAPHANDLE OutBitmap;
L_POINT如此[4];
如此[0]。x = 94;
如此[0]。y = 94;
如此[1]。x = 306;
如此[1]。y = 43;
如此[2]。x = 318;
如此[2]。y = 237;
如此[3]。x = 98;
如此[3]。y = 237;
如此,nRet = L_Keystone (&LeadBitmap &OutBitmap);
如果(nRet = =成功)
nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、&OutBitmap FILE_BMP, 24岁,0,NULL);
/ /免费的位图
如果(LeadBitmap.Flags.Allocated)
L_FreeBitmap (&LeadBitmap);
如果(OutBitmap.Flags.Allocated)
L_FreeBitmap (&OutBitmap);
返回nRet;
}