Вирівнювання зображення

Deskew Image або Deskew PDF за допомогою Java Cloud SDK

Велика кількість растрових зображень, які ми отримуємо для роботи та особистого використання, є зображеннями, відсканованими за допомогою цифрового сканера, або зображеннями з мобільного пристрою. Таким чином, існує достатня ймовірність того, що текст всередині зображення неправильно вирівняний і проходить через поле сторінки горизонтально або вертикально. Простіше кажучи, відскановані зображення на сканері часто перекошені (папір перемістили/повернули). Тепер, щоб вирішити такі проблеми, ми обираємо техніку під назвою вирівнювання, яка є процесом, за допомогою якого перекіс усувається обертанням зображення на таку ж величину, як і його перекіс, але в протилежному напрямку. Функція Deskew надзвичайно корисна в автоматизованій обробці зображень, коли зображення надходять зі сканера.

Тепер у цій статті ми детально розглянемо, як вирівняти зображення за допомогою Java Cloud SDK. Таким чином, функція вирівнювання працює в два етапи, тобто визначає кут перекосу зображення, а потім повертає зображення, щоб виправити перекіс. Ми можемо застосувати цю операцію до отриманих факсів і, використовуючи інформацію (текст) на зображенні, обчислити кут повороту, а не поля паперу, і виконати вимогу. Тим не менш, ми розуміємо, що операцію вирівнювання зображення можна виконувати на 1-бітних, 8-бітних і 24-бітних кольорових зображеннях.

API Deskew Image

Щоб підтримувати зображення, у нас є API на основі REST, який пропонує можливості керування файлами зображень у хмарі. Тепер для додатків Java ми спеціально розробили Aspose.Imaging Cloud SDK for Java, який дає змогу реалізувати можливості обробки зображень за допомогою коду Java. Тепер, щоб вирівняти зображення за допомогою Java cloud SDK, першим кроком буде додати його посилання в проект Java, включивши наступну інформацію в pom.xml (проект типу збірки maven).

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://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.

Deskew Image Online за допомогою Java

Давайте розглянемо деталі того, як вирівняти зображення за допомогою фрагмента коду Java. У цьому прикладі ми завантажуємо зображення у форматі TIFF із локального диска та застосовуємо операцію виправлення фото. Потім отриманий файл зберігається в хмарному сховищі.

  • По-перше, створіть об’єкт ImagingApi на основі персоналізованих облікових даних клієнта
  • По-друге, створіть логічну змінну, яка вказує на зміну розміру зображення пропорційно
  • Тепер прочитайте вміст вихідного TIFF за допомогою методу readAllBytes(…) і перейдіть до масиву byte[]
  • Наступним кроком є створення екземпляра CreateDeskewedImageRequest, для якого потрібен масив байтів, необов’язковий параметр для кольору фону та ім’я отриманої фотографії вирівнювання
  • Нарешті, викличте метод createDeskewedImage(…), щоб вирівняти зображення. Отриманий TIFF зберігається в хмарному сховищі
// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
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 на локальному/мережевому диску, спробуйте використати наведений нижче фрагмент коду.

// Отримайте ClientID і ClientSecret з https://dashboard.aspose.cloud/
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);
вирівняти зображення

Попередній перегляд фотографій Deskew

Зразок зображення у форматі TIFF, використаний у прикладі вище, можна завантажити з DeskewSampleImage.tif.

Виправте PDF за допомогою команд cURL

Ми можемо отримати PDF-файл із виправленими зображеннями, тому одним із швидких рішень є вилучення зображень із PDF-файлу, а потім виправлення зображень. Тепер, щоб виконати цю вимогу, ми збираємося використовувати тут два Cloud 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, нам потрібно витягти PDF-зображення за допомогою GrayscaleImage API Aspose.PDF Cloud. Зображення витягуються у форматі 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, тепер нам потрібно викликати DeskewImage API Aspose.Imaging Cloud, щоб вирівняти зображення. Оскільки отриманий файл повертається в потоці відповідей, ми можемо зберегти його на локальному диску.

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

Висновок

На цей час ми навчилися дивовижних і простих кроків, щоб вирівняти зображення, а також виправити PDF за допомогою Java cloud SDK. Тож тепер ми можемо виконати наші вимоги або за допомогою фрагмента коду Java, або за допомогою команд cURL. У той же час ми настійно рекомендуємо вам ознайомитися з Документацією продукту, щоб дізнатися більше про інші цікаві функції, які пропонує API.

Будь ласка, зверніть увагу, що всі наші Cloud SDK розробляються за ліцензією MIT, тому повний вихідний код можна завантажити з GitHub. Нарешті, якщо ви зіткнетеся з будь-якими проблемами під час використання API, ви можете звернутися до нас за швидким вирішенням через безкоштовний форум підтримки продуктів.

Схожі статті

Перейдіть за наведеними нижче посиланнями, щоб дізнатися більше про: