OpenCV - Menambahkan Perbatasan
Bab ini mengajarkan Anda bagaimana katak berbatasan dengan gambar.
Metode copyMakeBorder ()
Anda dapat menambahkan berbagai batas ke gambar menggunakan metode ini copyMakeBorder() dari kelas bernama Core, yang termasuk dalam paket org.opencv.core. berikut adalah sintaks dari metode ini.
copyMakeBorder(src, dst, top, bottom, left, right, borderType)
Metode ini menerima parameter berikut -
src - Objek kelas Mat mewakili gambar sumber (masukan).
dst - Objek kelas Mat mewakili gambar tujuan (keluaran).
top - Variabel bilangan bulat, jenis bilangan bulat yang mewakili panjang batas di bagian atas gambar.
bottom - Variabel bilangan bulat, jenis bilangan bulat yang mewakili panjang batas di bagian bawah gambar.
left - Variabel integer jenis integer yang mewakili panjang perbatasan di sebelah kiri gambar.
right - Variabel integer tipe integer yang mewakili panjang border di sebelah kanan gambar.
borderType - Variabel tipe integer yang mewakili tipe border yang akan digunakan.
Contoh
Program berikut adalah contoh yang mendemonstrasikan, bagaimana menambahkan perbatasan ke gambar tertentu.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class AddingBorder {
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/chap15/input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
Core.copyMakeBorder(src, dst, 20, 20, 20, 20, Core.BORDER_CONSTANT);
Imgcodecs.imwrite("E:/OpenCV/chap15/border_constant.jpg", dst);
System.out.println("Image Processed");
}
}
Asumsikan bahwa berikut ini adalah gambar input thresh_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 -
Jenis Perbatasan Lainnya
Selain tipe perbatasan, BORDER_CONSTANTditunjukkan pada contoh sebelumnya, OpenCV melayani berbagai jenis perbatasan. Semua jenis ini diwakili oleh bidang statis yang telah ditentukan (nilai tetap) dari kelas Inti.
Anda dapat memilih jenis operasi ambang yang Anda butuhkan, dengan meneruskan masing-masing nilai yang telah ditentukan sebelumnya ke parameter bernama borderType dari copyMakeBorder() metode.
Core.copyMakeBorder(src, dst, 20, 20, 20, 20, Core.BORDER_CONSTANT);
Berikut ini adalah nilai-nilai yang mewakili berbagai jenis operasi perbatasan dan keluarannya masing-masing.
Operasi dan Deskripsi | Keluaran |
---|---|
BORDER_CONSTANT |
|
BORDER_ISOLATED |
|
BORDER_DEFAULT |
|
BORDER_REFLECT |
|
BORDER_REFLECT_101 |
|
BORDER_REFLECT101 |
|
BORDER_REPLICATE |
|
BORDER_WRAP |
|