我們收到的大量用於工作和個人使用的光柵圖像是通過數字掃描儀掃描的圖像,或者可能是來自移動設備的圖片。因此,圖像中的文本很可能沒有正確對齊,並且水平或垂直跨越頁邊距。簡而言之,掃描圖像經常在掃描儀上傾斜(紙張移動/旋轉)。現在,為了解決此類問題,我們選擇了一種名為 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 時遇到任何問題,您可以考慮通過免費的 產品支持論壇 聯繫我們尋求快速解決方案。
相關文章
請訪問以下鏈接以了解更多信息: