Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The following assignment required me to implement 4 Types of Image Smoothing Filters. For this TIME I need HELP with implementing Kuwahara filter and Mean

image text in transcribed

The following assignment required me to implement 4 Types of Image Smoothing Filters.

For this TIME I need HELP with implementing Kuwahara filter and Mean filter ONLY!

You may use Source code from online resources. Make sure to CHECK OUT THE SKELETON PROGRAM PROVIDED(2 java files) and You must implement this filter in SmoothingFilter.java file.

.......................Baboon...........................

image text in transcribed

................................................................... SmoothingFilter.java........................................................

import java.util.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import javax.imageio.*;

// Main class public class SmoothingFilter extends Frame implements ActionListener { BufferedImage input; ImageCanvas source, target; TextField texSigma; int width, height; // Constructor public SmoothingFilter(String name) { super("Smoothing Filters"); // load image try { input = ImageIO.read(new File(name)); } catch ( Exception ex ) { ex.printStackTrace(); } width = input.getWidth(); height = input.getHeight(); // prepare the panel for image canvas. Panel main = new Panel(); source = new ImageCanvas(input); target = new ImageCanvas(input); main.setLayout(new GridLayout(1, 2, 10, 10)); main.add(source); main.add(target); // prepare the panel for buttons. Panel controls = new Panel(); Button button = new Button("Add noise"); button.addActionListener(this); controls.add(button); button = new Button("5x5 mean"); button.addActionListener(this); controls.add(button); controls.add(new Label("Sigma:")); texSigma = new TextField("1", 1); controls.add(texSigma); button = new Button("5x5 Gaussian"); button.addActionListener(this); controls.add(button); button = new Button("5x5 median"); button.addActionListener(this); controls.add(button); button = new Button("5x5 Kuwahara"); button.addActionListener(this); controls.add(button); // add two panels add("Center", main); add("South", controls); addWindowListener(new ExitListener()); setSize(width*2+100, height+100); setVisible(true); } class ExitListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } // Action listener for button click events public void actionPerformed(ActionEvent e) { // example -- add random noise if ( ((Button)e.getSource()).getLabel().equals("Add noise") ) { Random rand = new Random(); int dev = 64; for ( int y=0, i=0 ; y 255 ? 255 : red; green = green 255 ? 255 : green; blue = blue 255 ? 255 : blue; source.image.setRGB(x, y, (new Color(red, green, blue)).getRGB()); } source.repaint(); } } public static void main(String[] args) { new SmoothingFilter(args.length==1 ? args[0] : "baboon.png"); } }

..................................................................ImageCanvas.java.......................................................

import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import javax.imageio.*;

// Canvas for image display class ImageCanvas extends Canvas { BufferedImage image; // initialize the image and mouse control public ImageCanvas(BufferedImage input) { image = input; addMouseListener(new ClickListener()); } public ImageCanvas(int width, int height) { image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); addMouseListener(new ClickListener()); } // redraw the canvas public void paint(Graphics g) { // draw boundary g.setColor(Color.gray); g.drawRect(0, 0, getWidth()-1, getHeight()-1); // compute the offset of the image. int xoffset = (getWidth() - image.getWidth()) / 2; int yoffset = (getHeight() - image.getHeight()) / 2; g.drawImage(image, xoffset, yoffset, this); } // change the image and redraw the canvas public void resetImage(Image input) { image = new BufferedImage(input.getWidth(null), input.getHeight(null), BufferedImage.TYPE_INT_RGB); Graphics2D g2D = image.createGraphics(); g2D.drawImage(input, 0, 0, null); repaint(); }

// change the image and redraw the canvas public void resetBuffer(int width, int height) { image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics2D g2D = image.createGraphics(); }

// listen to mouse click class ClickListener extends MouseAdapter { public void mouseClicked(MouseEvent e) { if ( e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON3 ) try { ImageIO.write(image, "png", new File("saved.png")); } catch ( Exception ex ) { ex.printStackTrace(); } } } }

Your Task: The four image smoothing filters you need to implement are 5x5 mean filter, 5x5 Gaussian filt with user-specified parameter, 5x5 median filter, and 5x5 Kuwahara filter. Making use of the mo efficient implementation based on the property of the filters is required. Be careful when handli pixels near the boundaries of the image. If a pixel is outside of the image, the closest pixel that is l Smoothing Filter Add noise 55 mean Sigma 55 Gaussian 5x5 median 55 Kuwahara the image should be used. Output of the skeletal program Getting Started: A skeletal program is supplied to get you started, which you are required to use as the basis of yo implementation. To run the skeletal program, you need to put the testing images in the same folde The program opens a window that contains two panels and displays the test image in both panels. a demo, the program adds noise to the input image when the first button is pressed. Smoothing Fitte ye Add noise 55 mean 55 Gaussian 5x5 medan 55 Kuwahara Output of a sample solution Grading Your program will be tested and graded using a standard Java environment. The grade willb based on your program's functionality (whether or not it works under different settings), as well as th efficiency of your implementation. The weights for different components are as follows Result of 5x5 mean filtering 20% Result of 5x5 Gaussian filtering 20% Result of 5x5 median filtering 30% Result of 5x5 Kuwahara filtering 30% * * Your Task: The four image smoothing filters you need to implement are 5x5 mean filter, 5x5 Gaussian filt with user-specified parameter, 5x5 median filter, and 5x5 Kuwahara filter. Making use of the mo efficient implementation based on the property of the filters is required. Be careful when handli pixels near the boundaries of the image. If a pixel is outside of the image, the closest pixel that is l Smoothing Filter Add noise 55 mean Sigma 55 Gaussian 5x5 median 55 Kuwahara the image should be used. Output of the skeletal program Getting Started: A skeletal program is supplied to get you started, which you are required to use as the basis of yo implementation. To run the skeletal program, you need to put the testing images in the same folde The program opens a window that contains two panels and displays the test image in both panels. a demo, the program adds noise to the input image when the first button is pressed. Smoothing Fitte ye Add noise 55 mean 55 Gaussian 5x5 medan 55 Kuwahara Output of a sample solution Grading Your program will be tested and graded using a standard Java environment. The grade willb based on your program's functionality (whether or not it works under different settings), as well as th efficiency of your implementation. The weights for different components are as follows Result of 5x5 mean filtering 20% Result of 5x5 Gaussian filtering 20% Result of 5x5 median filtering 30% Result of 5x5 Kuwahara filtering 30% * *

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Learning PostgreSQL

Authors: Salahaldin Juba, Achim Vannahme, Andrey Volkov

1st Edition

178398919X, 9781783989195

More Books

Students also viewed these Databases questions

Question

b. A workshop on stress management sponsored by the company

Answered: 1 week ago