OpenCV - Gambar Piramida
Piramida adalah operasi pada gambar di mana,
Gambar masukan awalnya dihaluskan menggunakan filter penghalusan tertentu (misal: Gaussian, Laplacian) dan kemudian gambar yang dihaluskan disubsampel.
Proses ini diulangi beberapa kali.
Selama operasi piramida, kehalusan gambar ditingkatkan dan resolusi (ukuran) dikurangi.
Pyramid Up
Di Pyramid Up, gambar awalnya diambil sampelnya lalu diburamkan. Anda dapat melakukan operasi Pyramid Up pada gambar menggunakanpyrUP() metode dari imgprockelas. Berikut adalah sintaks dari metode ini -
pyrUp(src, dst, dstsize, borderType)
Metode ini menerima parameter berikut -
src - Objek kelas Mat mewakili gambar sumber (masukan).
mat - Objek kelas Mat mewakili gambar tujuan (keluaran).
size - Objek kelas Size mewakili ukuran gambar yang akan ditingkatkan atau dikurangi.
borderType - Variabel tipe integer yang merepresentasikan tipe border yang akan digunakan.
Contoh
Program berikut menunjukkan cara melakukan operasi Pyramid Up pada gambar.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class PyramidUp {
public static void main( String[] args ) {
// Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
// Reading the Image from the file and storing it in to a Matrix object
String file ="E:/OpenCV/chap13/pyramid_input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
// Applying pyrUp on the Image
Imgproc.pyrUp(src, dst, new Size(src.cols()*2, src.rows()*2), Core.BORDER_DEFAULT);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap13/pyrUp_output.jpg", dst);
System.out.println("Image Processed");
}
}
Asumsikan bahwa berikut ini adalah gambar input pyramid_input.jpg ditentukan dalam program di atas.
Keluaran
Saat menjalankan program, Anda akan mendapatkan output berikut -
Image Processed
Jika Anda membuka jalur yang ditentukan, Anda dapat mengamati gambar keluaran sebagai berikut -
Piramida Bawah
Di Pyramid Down, gambar awalnya diburamkan lalu disampling ke bawah. Anda dapat melakukan operasi Pyramid Down pada gambar menggunakanpyrDown() metode dari imgprockelas. Berikut adalah sintaks dari metode ini -
pyrDown(src, dst, dstsize, borderType)
Metode ini menerima parameter berikut -
src - Objek kelas Mat mewakili gambar sumber (masukan).
mat - Objek kelas Mat mewakili gambar tujuan (keluaran).
size - Objek kelas Size mewakili ukuran gambar yang akan ditingkatkan atau dikurangi.
borderType - Variabel tipe integer yang merepresentasikan tipe border yang akan digunakan.
Contoh
Program berikut mendemonstrasikan bagaimana melakukan operasi Pyramid Down pada gambar.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class PyramidDown {
public static void main( String[] args ) {
// Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
// Reading the Image from the file and storing it in to a Matrix object
String file ="E:/OpenCV/chap13/pyramid_input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
// Applying pyrDown on the Image
Imgproc.pyrDown(src, dst, new Size(src.cols()/2, src.rows()/2),
Core.BORDER_DEFAULT);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap13/pyrDown_output.jpg", dst);
System.out.println("Image Processed");
}
}
Asumsikan bahwa berikut ini adalah gambar input pyramid_input.jpg ditentukan dalam program di atas.
Keluaran
Saat menjalankan program, Anda akan mendapatkan output berikut -
Image Processed
Jika Anda membuka jalur yang ditentukan, Anda dapat mengamati gambar keluaran sebagai berikut -
Mean Shift Filtering
Dalam operasi piramida Pergeseran Rata-rata, langkah awal segmentasi pergeseran rata-rata suatu citra dilakukan.
Anda dapat melakukan operasi Pemfilteran Pergeseran Rata-rata piramida pada gambar menggunakan pyrDown() metode dari imgprockelas. Berikut adalah sintaks dari metode ini.
pyrMeanShiftFiltering(src, dst, sp, sr)
Metode ini menerima parameter berikut -
src - Objek kelas Mat mewakili gambar sumber (masukan).
mat - Objek kelas Mat mewakili gambar tujuan (keluaran).
sp - Variabel tipe double yang mewakili radius jendela spasial.
sr - Variabel tipe double yang mewakili radius jendela warna.
Contoh
Program berikut mendemonstrasikan bagaimana melakukan operasi Mean Shift Filtering pada gambar tertentu.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class PyramidMeanShift {
public static void main( String[] args ) {
// Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
// Reading the Image from the file and storing it in to a Matrix object
String file ="E:/OpenCV/chap13/pyramid_input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
// Applying meanShifting on the Image
Imgproc.pyrMeanShiftFiltering(src, dst, 200, 300);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap13/meanShift_output.jpg", dst);
System.out.println("Image Processed");
}
}
Asumsikan bahwa berikut ini adalah gambar input pyramid_input.jpg ditentukan dalam program di atas.
Keluaran
Saat menjalankan program, Anda akan mendapatkan output berikut -
Image Processed
Jika Anda membuka jalur yang ditentukan, Anda dapat mengamati gambar keluaran sebagai berikut -