Java DIP - Piramida Gambar

Piramida gambar tidak lain adalah metode untuk menampilkan gambar multi-resolusi. Lapisan paling bawah adalah versi gambar dengan resolusi tertinggi dan lapisan paling atas adalah versi gambar dengan resolusi paling rendah. Piramida citra digunakan untuk menangani citra pada skala yang berbeda.

Dalam bab ini kami melakukan beberapa pengambilan sampel ke bawah dan ke atas pada gambar.

Kita gunakan OpenCV fungsi pyrUp dan pyrDown. Mereka dapat ditemukan di bawahImgprocpaket. Sintaksnya diberikan di bawah ini -

Imgproc.pyrUp(source, destination, destinationSize);
Imgproc.pyrDown(source, destination,destinationSize);

Parameternya dijelaskan di bawah -

Sr.No. Parameter & Deskripsi
1

source

Itu adalah gambar sumber.

2

destination

Itu adalah gambar tujuan.

3

destinationSize

Ini adalah ukuran gambar keluaran. Secara default, ini dihitung sebagai Ukuran ((src.cols * 2), (src.rows * 2)).

Selain metode pyrUp dan pyrDown, ada metode lain yang disediakan oleh kelas Imgproc. Mereka dijelaskan secara singkat -

Sr.No. Metode & Deskripsi
1

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

Ini mengubah gambar dari satu ruang warna ke ruang warna lainnya.

2

dilate(Mat src, Mat dst, Mat kernel)

Ini melebarkan gambar dengan menggunakan elemen penataan tertentu.

3

equalizeHist(Mat src, Mat dst)

Ini menyamakan histogram dari gambar grayscale.

4

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

Ini menggabungkan gambar dengan kernel.

5

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

Ini mengaburkan gambar menggunakan filter Gaussian.

6

integral(Mat src, Mat sum)

Ini menghitung integral dari sebuah gambar.

Contoh

Contoh berikut menunjukkan penggunaan kelas Imgproc untuk melakukan pengambilan sampel ke atas dan ke bawah pada gambar.

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

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

public class main {
   public static void main( String[] args ) {
   
      try{
      
         System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
         Mat source = Highgui.imread("digital_image_processing.jpg",
         Highgui.CV_LOAD_IMAGE_COLOR);
         
         Mat destination1 = new Mat(source.rows()*2, source.cols()*2,source.type());
         destination1 = source;
         
         Imgproc.pyrUp(source, destination1, new  Size(source.cols()*2   source.rows()*2));
         Highgui.imwrite("pyrUp.jpg", destination1);
         
         source = Highgui.imread("digital_image_processing.jpg", 
         Highgui.CV_LOAD_IMAGE_COLOR);
         
         Mat destination = new Mat(source.rows()/2,source.cols()/2, source.type());
         destination = source;
         Imgproc.pyrDown(source, destination, new Size(source.cols()/2,  source.rows()/2));
         Highgui.imwrite("pyrDown.jpg", destination);
         
      } catch (Exception e) { 
         System.out.println("error: " + e.getMessage());
      }
   }
}

Keluaran

Saat Anda menjalankan kode yang diberikan, output berikut akan terlihat -

Gambar asli

Pada gambar asli, pyrUp (UP Sampling) dan pyrDown (Down Sampling) dilakukan. Output setelah pengambilan sampel adalah seperti yang ditunjukkan di bawah ini -

Gambar PyrUP

Gambar pyrDown