Bilgisayar grafikleri ve görüntü işlemede, görüntü eğriliği, dikdörtgen görüntülerin açı sapmasıdır. Görüntü eğme veya bozulma olarak da bilinir. “Eğrilik” terimi, bir görüntünün açısını ifade eder. Görüntüdeki öğelerin görsel konumu tek tip olmadığında görüntü eğriliği oluşur. Eğrilik, herhangi bir köşenin açılı olmasına veya hatta bir kenarın diğerinden daha uzun olacak şekilde kaydırılmasına neden olabilir. Bu tür fotoğraflar veya taranan görüntüler bozuk ve çekici görünmeyebilir. Bu yazıda, görüntü eğriliğini programlı olarak nasıl tespit edeceğimizi öğreneceğiz. Ayrıca Java’da görüntü eğrilik düzeltmesinin nasıl yapıldığını öğreneceğiz.
Bu yazıda aşağıdaki konular ele alınacaktır:
- Görüntü Eğriliği Düzeltme için Java API
- Görüntü Eğiklik Açısını Algıla
- Canlı Görüntünün Görüntü Eğrilik Açısını Algıla
- Otomatik Görüntü Eğriliği Düzeltme
- Otomatik Eğim Düzeltme ile Görüntü Metnini Tanıyın
- Manuel Görüntü Eğriliği Düzeltme
- Manuel Görüntü Eğriliği Düzeltme ile Görüntü Metnini Tanıyın
Görüntü Eğriliği Düzeltme için Java API
Görüntü eğriliği tespiti ve düzeltmeleri için Aspose.OCR for Java API’sini kullanacağız. Taranmış görüntülerde, akıllı telefon fotoğraflarında, ekran görüntülerinde, görüntünün alanlarında ve taranan PDF’lerde OCR gerçekleştirmeye olanak tanır. API, tanınan metin sonuçlarının popüler belge biçimlerinde kaydedilmesine de olanak tanır.
API’nin AsposeOCR sınıfı, resimlerdeki metni tanıyan ana sınıftır. Sağlanan kaynak görüntünün eğim açısını hesaplayan CalcSkewImage(string) yöntemini sağlar. Ayrıca, URI bağlantısı tarafından sağlanan bir görüntünün eğim açısını hesaplayan başka bir CalcSkewImageFromUri(String uri) yöntemi sağlar. PreprocessingFilter sınıfı, görüntü işleme komutları için temel sınıftır. API’nin RecognitionSettings sınıfı, görüntü tanıma için ayarlar sağlar, tanıma sürecinin özelleştirilmesine izin veren öğeler içerir.
Lütfen API’nin JAR’ını indirin veya Maven tabanlı bir Java uygulamasında aşağıdaki pom.xml yapılandırmasını ekleyin.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://releases.aspose.com/java/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-ocr</artifactId>
<version>22.9</version>
</dependency>
Java’da Görüntü Eğrilik Açısını Algıla
Aşağıda verilen adımları izleyerek bir metin görüntüsünün eğim açısını kolayca tespit edebiliriz:
- Öncelikle, AsposeOCR sınıfının bir örneğini oluşturun.
- CalcSkewImage() yöntemini çağırın. Görüntü yolunu bağımsız değişken olarak alır.
- Son olarak, hesaplanan eğim açısını gösterin.
Aşağıdaki örnek kod, Java’da bir görüntünün eğim açısının nasıl hesaplanacağını gösterir.
// Bu kod örneği, bir görüntünün eğim açısının nasıl hesaplanacağını gösterir.
// AsposeOcr'un bir örneğini oluşturun
AsposeOCR api = new AsposeOCR();
// Eğim açısını hesapla
double skew = api.CalcSkewImage("C:\\Files\\source.png");
// Açıyı göster
System.out.println("Skew angle: " + skew + "°.");
Canlı Görüntü URL’sinden Görüntü Eğrilik Açısını Algıla
Aşağıda verilen adımları izleyerek canlı bir URL’den bir görüntünün eğim açısını da tespit edebiliriz:
- Öncelikle, AsposeOCR sınıfının bir örneğini oluşturun.
- CalcSkewImageFromUri() yöntemini çağırın. Görüntü yolunu bağımsız değişken olarak alır.
- Son olarak, hesaplanan eğim açısını gösterin.
Aşağıdaki örnek kod, Java’da bir görüntünün eğim açısının nasıl hesaplanacağını gösterir.
// Bu kod örneği, bir görüntünün eğim açısının nasıl hesaplanacağını gösterir.
// AsposeOcr'un bir örneğini oluşturun
AsposeOCR api = new AsposeOCR();
// Eğim açısını hesapla
double skew = api.CalcSkewImageFromUri("https://www.aspose.com/sample-ocr-page.png");
// Açıyı göster
System.out.println("Skew angle: " + skew + "°.");
Java’da Otomatik Görüntü Eğriliği Düzeltme
Aşağıda verilen adımları izleyerek görüntü eğrilik düzeltmesini otomatik olarak düzeltebiliriz:
- Öncelikle, AsposeOCR sınıfının bir örneğini oluşturun.
- Ardından, PreprocessingFilter sınıfının bir nesnesini başlatın.
- Ardından, AutoSkew() filtresini ekleyin.
- Bundan sonra, filtreyi kaynak görüntüye uygulamak için PreprocessImage() yöntemini çağırın.
- Son olarak, düzeltilen görüntüyü kaydedin.
Aşağıdaki örnek kod, Java’da otomatik eğrilik düzeltme ön işleme filtresinin nasıl uygulanacağını gösterir.
// Bu kod örneği, ön işleme filtresini kullanarak otomatik eğrilik düzeltmenin nasıl uygulanacağını ve düzeltilen görüntünün nasıl kaydedileceğini gösterir.
// AsposeOcr'un bir örneğini oluşturun
AsposeOCR api = new AsposeOCR();
// Eğrilik düzeltme filtresi ekle
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.AutoSkew());
// Önceden işlenmiş görüntüyü dosyaya kaydet
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);
Java’da Otomatik Eğim Düzeltme ile Görüntü Metnini Tanıma
Aşağıda verilen adımları izleyerek otomatik eğiklik düzeltme uygulayabilir ve metni tanıyabiliriz:
- Öncelikle, AsposeOCR sınıfının bir örneğini oluşturun.
- Ardından, RecognitionSettings sınıfının bir nesnesini başlatın.
- Ardından, argüman olarak true ile setAutoSkew’i çağırın.
- Bundan sonra, kaynak görüntü ve RecognitionSettings nesnesi ile RecognizePage() yöntemini çağırın.
- Son olarak, tanınan metni gösterin.
Aşağıdaki örnek kod, Java’da otomatik eğrilik düzeltmenin nasıl uygulanacağını ve metnin nasıl tanınacağını gösterir.
// Bu kod örneği, otomatik eğim düzeltmesinin nasıl uygulanacağını gösterir.
// AsposeOcr'un bir örneğini oluşturun
AsposeOCR api = new AsposeOCR();
// Tanıma ayarlarında otomatik eğrilik düzeltmeyi etkinleştirin
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAutoSkew(true);
// Resmi tanı
RecognitionResult result = api.RecognizePage("C:\\Files\\source.png", recognitionSettings);
// Tanınan metni göster
System.out.println(result.recognitionText);
Java’da Manuel Görüntü Eğriliği Düzeltme
Aşağıdaki adımları izleyerek görüntüyü belirtilen dereceye kadar döndürerek eğrilik açısını manuel olarak tanımlayabiliriz:
- Öncelikle, AsposeOCR sınıfının bir örneğini oluşturun.
- Ardından, PreprocessingFilter sınıfının bir nesnesini başlatın.
- Ardından, Rotate() yöntem filtresini kullanarak döndürme açısı ekleyin.
- Ardından, RecognitionSettings sınıfının bir örneğini oluşturun.
- Bundan sonra, filtreyi kaynak görüntüye uygulamak için PreprocessImage() yöntemini çağırın.
- Son olarak, tanınan metni gösterin.
Aşağıdaki örnek kod, Java’da ön işleme filtresiyle manuel eğrilik düzeltmesinin nasıl uygulanacağını gösterir.
// Bu kod örneği, el ile eğim düzeltmesinin nasıl uygulanacağını gösterir.
// AsposeOcr'un bir örneğini oluşturun
AsposeOCR api = new AsposeOCR();
// Eğrilik düzeltme filtresi ekle
PreprocessingFilter filters = new PreprocessingFilter();
filters.add(PreprocessingFilter.Rotate(-90));
// Önceden işlenmiş görüntüyü dosyaya kaydet
BufferedImage imageRes = api.PreprocessImage("C:\\Files\\source.png", filters);
File outputSource = new File("C:\\Files\\result.png");
ImageIO.write(imageRes, "png", outputSource);
Java’da Manuel Görüntü Eğriliği Düzeltme ile Görüntü Metnini Tanıma
Eğim açısını manuel olarak tanımlayabilir ve aşağıdaki adımları izleyerek metni tanıyabiliriz:
- Öncelikle, AsposeOCR sınıfının bir örneğini oluşturun.
- Ardından, RecognitionSettings sınıfının bir nesnesini başlatın.
- Ardından, setSkew() yöntemini çağırın.
- Bundan sonra, kaynak görüntü ve RecognitionSettings nesnesi ile RecognizePage() yöntemini çağırın.
- Son olarak, tanınan metni gösterin.
Aşağıdaki örnek kod, manuel eğrilik düzeltmenin nasıl uygulanacağını ve Java’da görüntü metninin nasıl tanınacağını gösterir.
// Bu kod örneği, el ile eğim düzeltmesinin nasıl uygulanacağını gösterir.
// AsposeOcr'un bir örneğini oluşturun
AsposeOCR recognitionEngine = new AsposeOCR();
// Eğim açısını manuel olarak ayarlayın
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setSkew(6);
// Resmi tanı
RecognitionResult result = recognitionEngine.RecognizePage("C:\\Files\\source.png", recognitionSettings);
// Sonuçları görüntüle
System.out.println(result.recognitionText);
Ücretsiz Değerlendirme Lisansı Alın
Aspose.OCR for Java’yı değerlendirme sınırlamaları olmadan denemek için ücretsiz bir geçici lisans alabilirsiniz.
Çözüm
Bu makalede, şunların nasıl yapılacağını öğrendik:
- OCR gerçekleştirin ve resimlerdeki metni tanıyın;
- filtreler uygulayın ve görüntüleri işleyin;
- tanıma ayarlarını kullanın;
- Java kullanarak düzeltilmiş görüntüleri kaydedin.
Java’da görüntü eğriliği düzeltmenin yanı sıra, belgeleri kullanarak Aspose.OCR for Java API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda lütfen ücretsiz destek forumumuzda bizimle iletişime geçmekten çekinmeyin.