# include“l_bitmap.h”
L_LTIMGCOR_APIL_INTL_CompareBitmap (pReferenceBitmap、pModifiedBitmap pOutputBitmap、pAlignment pOptions)
比较两个图片的添加、删除和更改,并生成一个图像差异突出显示。
指针参考(原始)位图。
指针修改后的位图。
指针指向一个位图填充比较结果。有关更多信息,请参见下面的评论。
可选指针指向一个变换矩阵用于覆盖修改后的位图到参考图。如果零传递,不会执行转换和图像将左上的对齐。
指针指向的比较选择。
| 价值 | 意义 |
|---|---|
| 成功 | 函数是成功的。 |
| < 1 | 一个错误发生。指返回代码。 |
输出图像(pOutputBitmap3)将每像素色彩位数。前六项的调色板的填充COMPAREOPTIONS结构(pOptions):
| 指数 | 价值 |
|---|---|
| 0 | pOptions - > crOutputExternal |
| 1 | pOptions - > crOutputBackground |
| 2 | pOptions - > crOutputMatch |
| 3 | pOptions - > crOutputAddition |
| 4 | pOptions - > crOutputDeletion |
| 5 | pOptions - > crOutputChange |
Win32 x64, Linux。
这个例子展示了如何比较图像的修改和旋转的版本。
L_INT CompareBitmapExample (L_VOID){L_INT nRet =成功;BITMAPHANDLE ReferenceBitmap = {0};/ /原始图像BITMAPHANDLE ModifiedBitmap = {0};/ /修改后的图像BITMAPHANDLE OutputBitmap = {0};/ /生成的图像COMPAREOPTIONS选项= {0};/ /比较选择L_MATRIX对齐= {0};/ /修改图像对齐的转换L_RECT RemoveRect = {0};/ /删除从一个图像/ /加载原始图像nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“ocr1.tif”&ReferenceBitmap)),运算符(BITMAPHANDLE), 0 ORDER_BGRORGRAY空,空);如果(nRet ! =成功)转到清理;/ /使用相同的图像“修改”的形象nRet = L_CopyBitmap (&ModifiedBitmap &ReferenceBitmap,运算符(BITMAPHANDLE));如果(nRet ! =成功)转到清理;/ /删除最后一段的参考图像L_Rect_Make (&RemoveRect、290、2470、1930、360);nRet = L_SetBitmapRgnRect (&ReferenceBitmap, NULL, &RemoveRect L_RGN_SET);如果(nRet ! =成功)转到清理;nRet = L_FillBitmap (&ReferenceBitmap RGB (255、255、255));如果(nRet ! =成功)转到清理;nRet = L_FreeBitmapRgn (&ReferenceBitmap);如果(nRet ! =成功)转到清理;/ /删除标题从修改后的图像L_Rect_Make (&RemoveRect、290、300、810、110);nRet = L_SetBitmapRgnRect (&ModifiedBitmap, NULL, &RemoveRect L_RGN_SET);如果(nRet ! =成功)转到清理;nRet = L_FillBitmap (&ModifiedBitmap RGB (255、255、255));如果(nRet ! =成功)转到清理;nRet = L_FreeBitmapRgn (&ModifiedBitmap);如果(nRet ! =成功)转到清理;/ /修改后的图像旋转演示(学位)百分之角测量nRet = L_RotateBitmap (340 * 100, &ModifiedBitmap ROTATE_RESIZE, RGB (0, 0, 0));如果(nRet ! =成功)转到清理;/ /更新转换上面对齐/反向旋转L_Matrix_Identity(对齐);-ModifiedBitmap L_Matrix_Translate(对齐。宽* 0.5,-ModifiedBitmap。高* 0.5);L_Matrix_Rotate(对齐,20.0);ReferenceBitmap L_Matrix_Translate(对齐。宽* 0.5,ReferenceBitmap。高* 0.5);/ /设置的比较选择选项。uStructSize =运算符(COMPAREOPTIONS);选项。uThreshold = 0;/ /图像双调的,不需要测量颜色的距离选项。crReferenceBackground = RGB (255、255、255);/ /白色选项。crReferenceForeground = RGB (0, 0, 0);/ /黑色选项。crModifiedBackground = RGB (255、255、255);/ /白色选项。crModifiedForeground = RGB (0, 0, 0);/ /黑色选项。crOutputExternal = RGB (128、128、255);/ /浅蓝色选项。crOutputBackground = RGB (255、255、255);/ /白色选项。crOutputMatch = RGB (64、64、64);/ /深灰色选项。crOutputAddition = RGB (0 255 0);/ /绿色选项。crOutputDeletion = RGB (255, 0, 0);/ /红色选项。crOutputChange = RGB (255、255、0);/ /黄色/ /比较图像nRet = L_CompareBitmap (&ReferenceBitmap &ModifiedBitmap &OutputBitmap,对齐,选择);如果(nRet ! =成功)转到清理;/ /保存结果nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“CompareBitmap_Output.png”)),&OutputBitmap FILE_PNG 0, 0,零);如果(nRet ! =成功)转到清理;/ /保存两个输入图片,以供参考nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“CompareBitmap_Reference.png”)),&ReferenceBitmap FILE_PNG 0, 0,零);如果(nRet ! =成功)转到清理;nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“CompareBitmap_Modified.png”)),&ModifiedBitmap FILE_PNG 0, 0,零);如果(nRet ! =成功)转到清理;清理:/ /自由加载图片如果(ReferenceBitmap.Flags.Allocated)L_FreeBitmap (&ReferenceBitmap);如果(ModifiedBitmap.Flags.Allocated)L_FreeBitmap (&ModifiedBitmap);如果(OutputBitmap.Flags.Allocated)L_FreeBitmap (&OutputBitmap);返回nRet;}
以下图片是运行时生成的示例:
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。
