跳转到主要内容
此对象包含图像上像素坐标的信息,这些坐标对应于从 ImageDocument 对象获取该对象时的图像状态 (即 CoordinatesConverter 属性) 。它可用于将像素坐标从一种图像修改状态转换为另一种状态。 您可以使用此对象在图像处理的任意两个阶段之间转换像素坐标。例如:
  1. 在打开图像后立即获取此对象,此时图像偏斜已校正。
  2. 应用若干其他修改,然后从 ImageDocument 获取此对象的另一个实例。
  3. 现在,您可以通过两次调用 ConvertCoordinates 方法,在初始纠偏后的图像平面与修改后的图像平面之间转换像素坐标:
    • 使用 CoordinatesConverter 的第一个实例,将坐标从纠偏后的图像平面转换到原始图像平面;
    • 使用 CoordinatesConverter 的第二个实例,将结果从原始图像平面转换到修改后的图像平面。
CoordinatesConverter 对象是一个持久性对象。这意味着该对象的当前状态可以写入持久存储。之后,可以通过从持久存储中读取对象状态来重新创建该对象。以下方法可用于持久化该对象: Linux: SaveToFileLoadFromFile Windows SaveToFileLoadFromFileSaveToMemoryLoadFromMemory

属性

名称类型描述
ApplicationEngine, 只读返回 Engine 对象。

方法

名称描述
ConvertCoordinates在不同修改状态或 ImageDocument 的不同图像平面之间转换像素坐标。
LoadFromFile从磁盘文件中恢复该对象的内容。
LoadFromMemory <Note> 仅适用于 Windows。 </Note>从全局内存中恢复该对象的内容。
SaveToFile将该对象的内容保存到磁盘文件中。
SaveToMemory <Note> 仅适用于 Windows。 </Note>将该对象的内容保存到全局内存中。
CoordinatesConverter 对象图

示例

下面是一个 Windows 示例,展示了如何使用此对象在两种不同的修改状态之间转换坐标:

C#

FREngine.IEngine engine;
FREngine.IFRDocument frDoc;
// 将图像添加到文档时,默认执行纠偏校正
frDoc.AddImageFile ("D:\\Sample.tif", null, null);
// 打开第一页的 ImageDocument
FREngine.IImageDocument imageDoc = frDoc.Pages[0].ImageDocument; 
// 创建打开后的坐标快照
FREngine.ICoordinatesConverter convAfterOpening = imageDoc.CoordinatesConverter;
// 进一步变换图像
imageDoc.Transform(FREngine.RotationTypeEnum.RT_Counterclockwise, false, false);
// 创建变换后的坐标快照
FREngine.ICoordinatesConverter convAfterModification = imageDoc.CoordinatesConverter;
...
// 经过一些处理后,在修改后的图像平面上找到一个需要转换坐标的像素点
int x, y;
convAfterModification.ConvertCoordinates(FREngine.ImageTypeEnum.IT_Base, FREngine.ImageTypeEnum.IT_Modified, ref x, ref y);
convAfterOpening.ConvertCoordinates(FREngine.ImageTypeEnum.IT_Modified, FREngine.ImageTypeEnum.IT_Base, ref x, ref y);
// 现在 x、y 包含纠偏图像平面上目标点的坐标
此对象也用于适用于 macOS 的 Business Card Recognition 代码示例。

另请参阅

ImageDocument 使用图像 使用属性