我们收到的大量用于工作和个人使用的光栅图像是通过数字扫描仪扫描的图像,或者可能是来自移动设备的图片。因此,图像中的文本很可能没有正确对齐,并且水平或垂直跨越页边距。简而言之,扫描图像经常在扫描仪上倾斜(纸张移动/旋转)。现在,为了解决此类问题,我们选择了一种名为 deskewing 的技术,这是一种通过将图像旋转与其倾斜相同但方向相反的量来消除倾斜的过程。当图像来自扫描仪时,Deskew 功能在自动图像处理中非常有用。
现在,在本文中,我们正在研究如何使用 Java Cloud SDK 对图像进行偏移校正的详细信息。所以 deskew 功能分两步工作,即检测图像的倾斜角度,然后旋转图像以校正倾斜。我们可以将此操作应用于收到的传真并使用图像上的信息(文本),计算旋转角度,而不是纸张的页边距,并完成要求。尽管如此,我们了解到可以对 1 位、8 位和 24 位彩色图像执行图像去歪斜操作。
去歪斜图像 API
为了支持图像,我们有基于 REST 的 API,提供在云中操作图像文件的功能。现在针对Java应用,我们专门开发了Aspose.Imaging Cloud SDK for Java,让您可以通过Java代码实现图像处理功能。现在,为了使用 Java 云 SDK 对图像进行校正,第一步是通过在 pom.xml(maven 构建类型项目)中包含以下信息来在 java 项目中添加其引用。
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging-cloud</artifactId>
<version>22.4</version>
</dependency>
</dependencies>
下一步是从 Cloud Dashboard 获取客户端凭据,如果您没有 Aspose Cloud Dashboard 的帐户,请通过有效的电子邮件地址创建一个免费帐户。现在使用新创建的帐户登录并在 Aspose Cloud Dashboard 中查找/创建客户端 ID 和客户端密码。
使用 Java 在线去歪斜图像
让我们来探讨一下如何使用 Java 代码片段去歪斜图像的详细信息。对于此示例,我们从本地驱动器加载 TIFF 图像并应用去歪斜照片操作。然后将生成的文件保存到云存储中。
- 首先,根据个性化客户端凭证创建一个 ImagingApi 对象
- 其次,创建一个布尔变量,指示按比例调整图像大小
- 现在使用 readAllBytes(…) 方法读取源 TIFF 的内容并传递给 byte[] 数组
- 下一步是创建一个 CreateDeskewedImageRequest 实例,它需要字节数组、背景颜色的可选参数和生成的去歪斜照片的名称
- 最后,调用方法 createDeskewedImage(…) 对图像进行校正。生成的 TIFF 存储在云存储中
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// 创建成像对象
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// 设置变量以按比例调整校正图像的大小
boolean resizeProportionally = true;
// 背景颜色信息
String bkColor = "white";
// 从本地驱动器加载文件
File f = new File("DeskewSampleImage.tiff");
// 读取 TIFF 图像的内容到字节数组
byte[] inputStream = Files.readAllBytes(f.toPath());
// 创建一个对象来定义抗歪斜图像属性
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);
// 去歪斜照片并将输出保存在云存储中
imageApi.createDeskewedImage(request);
现在,如果您想将生成的 TIFF 保存在本地/网络驱动器上,请尝试使用以下代码片段。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// 创建成像对象
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// 设置变量以按比例调整校正图像的大小
boolean resizeProportionally = true;
// 背景颜色信息
String bkColor = "white";
// 从本地驱动器加载文件
File f = new File("DeskewSampleImage.tif");
// 读取 TIFF 图像的内容到字节数组
byte[] inputStream = Files.readAllBytes(f.toPath());
// 创建一个对象来定义抗歪斜图像属性
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);
// 去歪斜照片并将输出作为流对象返回
byte[] updatedImage = imageApi.createDeskewedImage(request);
// 存储更新后的 TIFF 图像的路径
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();
// 调用 API 对照片进行校正并保存到本地驱动器
Files.write(path, updatedImage);
上例中使用的示例 TIFF 图像可以从 DeskewSampleImage.tif 下载。
使用 cURL 命令去歪斜 PDF
我们可能会收到包含校正图像的 PDF 文件,因此一种快速解决方案是从 PDF 文件中提取图像,然后对图像进行校正。现在为了完成这个要求,我们将在这里使用两个云 API,即 Aspose.PDF Cloud 从 PDF 文件中提取图像和 Aspose.Imaging Cloud 来校正照片。然而,在我们执行任何操作之前,首先我们需要使用以下命令生成一个 JWT 访问令牌(基于客户端凭证)。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
获得 JWT 令牌后,我们需要使用 Aspose.PDF Cloud 的 GrayscaleImage API 提取 PDF 图像。图像以 TIFF 格式提取并存储在云存储中。
curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/pages/1/images/extract/tiff?width=0&height=0" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
现在图像从PDF文件中提取为TIFF格式,现在我们需要调用Aspose.Imaging Cloud的DeskewImage API来对图像进行校正。由于生成的文件在响应流中返回,因此我们可以将其保存到本地驱动器。
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.tiff/deskew?resizeProportionally=true&bkColor=White" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o Deskewed.tiff
结论
到这时,我们已经学习了一些使用 Java 云 SDK 对图像和 PDF 进行校正的惊人而简单的步骤。所以现在我们可以使用 Java 代码片段或使用 cURL 命令来完成我们的要求。同时,我们强烈建议您浏览 产品文档 以了解有关 API 提供的其他令人兴奋的功能的更多信息。
请注意,我们所有的 Cloud SDK 都是在 MIT 许可下开发的,因此可以从 GitHub 下载完整的源代码。最后,如果您在使用 API 时遇到任何问题,您可以考虑通过免费的 产品支持论坛 联系我们寻求快速解决方案。
相关文章
请访问以下链接以了解更多信息: