Java DIP - Yakınlaştırma Etkisi Oluşturun

Yakınlaştırma, görüntüdeki ayrıntıların daha görünür ve belirgin hale gelmesi için bir görüntüyü büyütme işlemidir.

Kullanırız OpenCV işlevi resizegörüntülere yakınlaştırma uygulamak için. Altında bulunabilirImgprocpaketi. Söz dizimi aşağıda verilmiştir -

Imgproc.resize(source,destination, destination.size(),zoomFactor,zoomFactor,Interpolation);

Yeniden boyutlandırma işlevinde, kaynak görüntüyü, hedef görüntüyü ve boyutunu, yakınlaştırma faktörünü ve kullanılacak enterpolasyon yöntemini iletiriz.

Mevcut enterpolasyon yöntemleri aşağıda açıklanmıştır -

Sr.No. Enterpolasyon yöntemi ve açıklaması
1

INTER_NEAREST

En yakın komşu enterpolasyonudur.

2

INTER_LINEAR

Çift doğrusal enterpolasyondur (varsayılan olarak kullanılır).

3

INTER_AREA

Piksel alanı ilişkisini kullanarak yeniden örneklemedir. Daha özgür sonuçlar verdiği için görüntü yok etme için tercih edilen bir yöntem olabilir.

4

INTER_CUBIC

4x4 piksel bölgesi üzerinde iki kübik bir enterpolasyondur.

5

INTER_LANCZOS4

Bu, 8x8 piksel mahallesi üzerinde bir Lanczos enterpolasyonudur.

Yeniden boyutlandırma yönteminin yanı sıra, Imgproc sınıfı tarafından sağlanan başka yöntemler de vardır. Kısaca açıklanmıştır -

Sr.No. Yöntem ve Açıklama
1

cvtColor(Mat src, Mat dst, int code, int dstCn)

Bir görüntüyü bir renk uzayından diğerine dönüştürür.

2

dilate(Mat src, Mat dst, Mat kernel)

Belirli bir yapılandırma öğesi kullanarak bir görüntüyü genişletir.

3

equalizeHist(Mat src, Mat dst)

Gri tonlamalı bir görüntünün histogramını eşitler.

4

filter2D(Mat src, Mat dst, int ddepth, Mat kernel, Point anchor, double delta)

Çekirdek ile bir görüntüyü birleştirir.

5

GaussianBlur(Mat src, Mat dst, Size ksize, double sigmaX)

Bir Gauss filtresi kullanarak bir görüntüyü bulanıklaştırır.

6

integral(Mat src, Mat sum)

Bir görüntünün integralini hesaplar.

Misal

Aşağıdaki örnek, bir görüntüye yakınlaştırma uygulamak için Imgproc sınıfının kullanımını gösterir.

import org.opencv.core.Core;
import org.opencv.core.Mat;

import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;

public class Main {
   public static void main( String[] args ) {
   
      try {
         int zoomingFactor = 2;
         System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
         
         Mat source = Highgui.imread("image.jpg", Highgui.CV_LOAD_IMAGE_GRAYSCALE);
         Mat destination = new Mat(source.rows() * zoomingFactor, source.cols()*  zoomingFactor,source.type());  
         
         Imgproc.resize(source, destination, destination.size(),  zoomingFactor,zoomingFactor,Imgproc.INTER_NEAREST);
         Highgui.imwrite("zoomed.jpg", destination);
         
      } catch (Exception e) {
         System.out.println("Error: "+e.getMessage());
      }
   }
}

Çıktı

Verilen kodu çalıştırdığınızda, aşağıdaki çıktı görülür -

Gerçek görüntü

Yakınlaştırılmış Görüntü (Yakınlaştırma faktörü - 2)