Di OpenCV, filter Scharr ada bersamaan dengan pengoperasian operator sobel. Ketika kernel sobel adalah 3, hasilnya dapat menghasilkan kesalahan yang lebih jelas. Menanggapi masalah ini, OpenCV menyediakan fungsi Scharr. Fungsi ini hanya menargetkan kernel ukuran 3, dan laju perhitungan secepat fungsi sobel, dan hasilnya lebih akurat, tetapi resistansi noise tidak sebagus fungsi sobel.
Gunakan filter Scharr untuk menghitung perbedaan gambar dalam arah x atau y, dan variabel parameternya sama dengan sobel.
Fungsi: imgproc.scharr (Mat Src, Mat DST, int ddepth, int dx, int dy, skala ganda, delta ganda, int bordertype)
Deskripsi Parameter:
SRC: Gambar sumber
DST: Gambar Hasil Deteksi
DDEPTH: Kedalaman gambar output
DX: urutan perbedaan dalam arah x
dy: urutan perbedaan dalam arah y
Skala: Faktor penskalaan
Delta: Nilai Delta Opsional sebelum hasilnya disimpan dalam gambar output, default adalah 0
BorderType: Mode Batas, Default Border_Default
Kode contoh:
public static void main (string [] args) {System.LoadLibrary (core.native_library_name); Mat src = imgcodecs.imread ("f: //2011031213205880528.jpg"); Mat dst = src.clone (); Mat dstx = src.clone (); Mat dsty = src.clone (); IMGPROC.AussianBlur (SRC, DST, Ukuran Baru (3, 3), 0); Imgproc.cvtcolor (dst, dst, imgproc.color_rgb2gray); Imgproc.scharr (dst, dstx, -1, 1, 0, 1, 0, core.border_default); Imgcodecs.imwrite ("f: //dstx.jpg", dstx); Imgproc.scharr (dst, dsty, -1, 0, 1, 1, 0, core.border_default); Imgcodecs.imwrite ("f: //dsty.jpg", dsty); Core.addweighted (dstx, 0,5, dsty, 0,5, 0, dst); Imgcodecs.imwrite ("f: //dst.jpg", dst); } Gambar Sumber:
Scharr di arah x:
Scharr di arah y:
Setelah menggabungkan gradien:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.