Path: blob/master/samples/java/tutorial_code/ImgProc/Smoothing/Smoothing.java
16354 views
import org.opencv.core.*;1import org.opencv.highgui.HighGui;2import org.opencv.imgcodecs.Imgcodecs;3import org.opencv.imgproc.Imgproc;45class SmoothingRun {67/// Global Variables8int DELAY_CAPTION = 1500;9int DELAY_BLUR = 100;10int MAX_KERNEL_LENGTH = 31;1112Mat src = new Mat(), dst = new Mat();13String windowName = "Filter Demo 1";1415public void run(String[] args) {1617String filename = ((args.length > 0) ? args[0] : "../data/lena.jpg");1819src = Imgcodecs.imread(filename, Imgcodecs.IMREAD_COLOR);20if( src.empty() ) {21System.out.println("Error opening image");22System.out.println("Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");23System.exit(-1);24}2526if( displayCaption( "Original Image" ) != 0 ) { System.exit(0); }2728dst = src.clone();29if( displayDst( DELAY_CAPTION ) != 0 ) { System.exit(0); }3031/// Applying Homogeneous blur32if( displayCaption( "Homogeneous Blur" ) != 0 ) { System.exit(0); }3334//! [blur]35for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {36Imgproc.blur(src, dst, new Size(i, i), new Point(-1, -1));37displayDst(DELAY_BLUR);38}39//! [blur]4041/// Applying Gaussian blur42if( displayCaption( "Gaussian Blur" ) != 0 ) { System.exit(0); }4344//! [gaussianblur]45for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {46Imgproc.GaussianBlur(src, dst, new Size(i, i), 0, 0);47displayDst(DELAY_BLUR);48}49//! [gaussianblur]5051/// Applying Median blur52if( displayCaption( "Median Blur" ) != 0 ) { System.exit(0); }5354//! [medianblur]55for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {56Imgproc.medianBlur(src, dst, i);57displayDst(DELAY_BLUR);58}59//! [medianblur]6061/// Applying Bilateral Filter62if( displayCaption( "Bilateral Blur" ) != 0 ) { System.exit(0); }6364//![bilateralfilter]65for (int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2) {66Imgproc.bilateralFilter(src, dst, i, i * 2, i / 2);67displayDst(DELAY_BLUR);68}69//![bilateralfilter]7071/// Done72displayCaption( "Done!" );7374System.exit(0);75}7677int displayCaption(String caption) {78dst = Mat.zeros(src.size(), src.type());79Imgproc.putText(dst, caption,80new Point(src.cols() / 4, src.rows() / 2),81Imgproc.FONT_HERSHEY_COMPLEX, 1, new Scalar(255, 255, 255));8283return displayDst(DELAY_CAPTION);84}8586int displayDst(int delay) {87HighGui.imshow( windowName, dst );88int c = HighGui.waitKey( delay );89if (c >= 0) { return -1; }90return 0;91}92}9394public class Smoothing {95public static void main(String[] args) {96// Load the native library.97System.loadLibrary(Core.NATIVE_LIBRARY_NAME);98new SmoothingRun().run(args);99}100}101102103