Interactive Frequency Filtering Program Geoff Franz.

Slides:



Advertisements
Similar presentations
W2D1 Fluency with IT = to learn / figure out quickly to use the computer for whatever purpose skills (lab) concepts (lectures)
Advertisements

GIMP Tutorial v2.0 Boo Virk
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
Working with Vector Graphics – Lesson 21 Working with Vector Graphics Lesson 2.
THEMIS Science Software Training1July 2007 The THEMIS Graphical User Interface J. McTiernan 23-Jul-2007
DIP Realized by IDL Author: Ying Li Course: computer for imaging science.
Working with Special Layer Functions
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
Drawing forecast charts. Open NeLant basic map area.
DIGITAL GRAPHICS & ANIMATION
Using Draw Tools C 2012jkc. Click File on the menu bar and select Page Setup on the drop- down menu to get the Page Setup dialog box. Under the Margins.
Graphical User Interfaces A Quick Outlook. Interface Many methods to create and “interface” with the user 2 most common interface methods: – Console –
Programming with App Inventor Computing Institute for K-12 Teachers Summer 2012 Workshop.
Tutorial 4: Using CSS for Page Layout. 2 Objectives Session 4.1 Explore CSS layout Compare types of floating layouts Examine code for CSS layouts View.
Color Correct and Remove Keystoning A minimalist approach to photographing your art By Paul Marley.
IE 411/511: Visual Programming for Industrial Applications
Chapter 6 Images in Dreamweaver & Fireworks Mrs. Johnson Web Design.
Introduction to Matlab & Data Analysis
Automated GUI testing How to test an interactive application automatically?
Visual Basic 2005 CHAPTER 2 Program and Graphical User Interface Design.
Project 2 Adding Web Pages, Links, and Images Dreamweaver MX 2004 Concepts and Techniques.
Wimba Presenters Guide North Dakota University System 2009.
FLTK Help Session By Richard Yu Gu CS 638 -Graphics Fall, 1999.
® Microsoft Office 2010 Excel Tutorial 1: Getting Started with Excel.
University of Sunderland CDM105 Session 6 Dreamweaver and Multimedia Fireworks MX 2004 Creating Menus and Button images.
MA/CS 3751 Fall 2002 Lecture 24. MA/CS 3752 ginput ginput is a Matlab function which takes one argument input: number of points to select in the image.
Lab 6: event & input intro User Interface Lab: GUI Lab Oct. 2 nd, 2013.
Template for Applet Design stage. General Instructions: The template shown is an example. Please add more slides wherever required. Include look of the.
Macromedia Studio 8 Step-by-Step MACROMEDIA FIREWORKS 8 Project 2: Experience Bank Logo.
Processing Lab 1 – Loading the data into Vista Bryce Hutchinson Objectives: 1.to make sure everyone has an valid user ID in the CIF lab 2.To make sure.
Lecture 11: Exam Revision 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271  Coursework.
Automated GUI testing How to test an interactive application automatically?
Chapter 2 – Introduction to the Visual Studio .NET IDE
Chapter 4 Working with Frames. Align and distribute objects on a page Stack and layer objects Work with graphics frames Work with text frames Chapter.
Layers, Image Maps, and Navigation Bars
Tutorial for XFDTD Written by Cynthia Furse University of Utah.
The Abstract Window Toolkit (AWT) supports Graphical User Interface (GUI) programming. AWT features include: a rich set of user interface components; a.
© Anselm Spoerri Lecture 7 Meaning –Guiding Principles for Term Project Mechanics –Interactivity Recap –Simple and Disjointed Rollovers and Image Map –Navigation.
Project Two Adding Web Pages, Links, and Images Define and set a home page Add pages to a Web site Describe Dreamweaver's image accessibility features.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Oct 021 Outline What is a widget? Buttons Combo boxes Text components Message boxes.
How to use this SPARKlab Authoring Template (PowerPoint 2007 for Windows) 1.Save this file as a PowerPoint Presentation (.pptx) with the name of the SPARKlab.
Microsoft Visual Basic 2010 CHAPTER TWO Program and Graphical User Interface Design.
1 Visual Basic Part I - A tool for customizing your program Principles of GIS
To play, start slide show and click on circle Lesson 4 Lesson 4 Lesson 4 Lesson 5 Lesson Lesson 5.
1 Project designed and created by M. Shajith Kumar.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
Chapter 2 Using Selection Tools and Shortcut Keys
Changing a Word table format Changing a Word table format (1 of 5) 1. Double click the Word table you want to edit. 1.
E-Board Features North Dakota University System 2008.
COMPUTER PROGRAMMING I 3.01 Apply Controls Associated With Visual Studio Form.
How to use this SPARKlab Authoring Template (PowerPoint 2007 for Windows) 1.Save this file as a PowerPoint Presentation (.pptx) with the name of the SPARKlab.
MATLAB and SimulinkLecture 61 To days Outline Graphical User Interface (GUI) Exercise on this days topics.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
© Anselm Spoerri Lecture 7 Meaning –Guiding Principles for Term Project Mechanics –Interactivity Recap –Simple and Disjointed Rollovers and Image Map –Navigation.
COMPUTER PROGRAMMING I 3.01 Apply Controls Associated With Visual Studio Form.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
Dive Into® Visual Basic 2010 Express
Chapter 3: I Need a Tour Guide (Introduction to Visual Basic 2012)
Scratch for Interactivity
Learn Animations in Fireworks
Chapter 2 – Introduction to the Visual Studio .NET IDE
3.01 Apply Controls Associated With Visual Studio Form
Introduction to Basic Interface of
3.01 Apply Controls Associated With Visual Studio Form
Gimp Guide Mr Hall.
Chapter 2 Adding Web Pages, Links, and Images
Chapter 2 – Introduction to the Visual Studio .NET IDE
Introduction To Photoshop
Presentation transcript:

Interactive Frequency Filtering Program Geoff Franz

Overview Concept and Problem Statement Solution User’s Guide Program Components Suggestions for Future Revisions Demo

Concept and Problem Statement Sometimes you find images that suffer from obvious frequency-domain artifacts (e.g., halftoning, banding, etc) I don’t know of any programs that let someone interactively filter in the frequency domain and see the results in real time

Solution Write my own!

User’s Guide – Startup Screen This is what the user sees when the program is launched.

User’s Guide – Opening an Image This is what the user sees when a large image is opened.

User’s Guide – Opening an Image This is what the user sees when a small image is opened.

User’s Guide – Drawing the Mask The white lines are what the user sees when drawing with a small brush.

User’s Guide – Drawing the Mask The white lines are what the user sees when drawing with a large brush.

User’s Guide – Drawing the Mask The black areas are the result of drawing the mask.

User’s Guide – Mask Smoothing The program can also create smoothed masked areas.

User’s Guide – Final Result This is an example of a possible end result.

Program Components These are the procedures and functions I wrote to solve the problem Gaus, Show_FFT, Image_Display, Drawline_Draw_Events, Wid_Base_0_Event, IFF_GUI Info structure They are explained in the following slides

Gaus Returns a Gaussian function given an input. Equation: The Gaus function has obvious applications outside of this program, although it’s been written many times before

Show_FFT Prepares a shifted FFT array for display  Zeroes out the DC component  Applies an overall logarithmic brightness transform  Applies a radially-dependent brightness transform Displays the modified FFT in the chosen window

Image_Display Reads in an image Computes the FFT and creates a mask Initializes an “info” structure that is used for the remainder of the program Displays the image in the left and right panels, and calls Show_FFT to display the FFT in the center panel Enables button events in the center draw widget

Info Structure info = {image:image, $ ;the image itself pixID:-1, $ ;window ID of the hidden pix map fftimage:fftimage,$ ;FFT of the image wid0:wid0, wid1:wid1, wid2:wid2, $ ; window IDs imageID:WID_DRAW_0,$ ;left draw widget ID drawID:WID_DRAW_1,$ ;center draw widget ID filtID:WID_DRAW_2, $ ;right draw widget ID xsize:xs, ysize:ys, $ ;dimensions of the image xstart:-1, ystart:-1,$ ;starting location of the drawn line mask:mask, $ ;mask for the FFT xmid:xmid, ymid:ymid, $ ;central pixel location xvalues:ptr_new(),yvalues:ptr_new(),$ ;vertices for drawing the line buttonUsed:'None', $ ;which mouse button is currently selected ;this could be used to enable different ;functionality from the right mouse button drawColor:!D.N_colors-1} ;set the draw color to white

Drawline_Draw_Events Loosely based on David Fanning’s drawline.pro example This code handles all mouse events in the center draw widget Uses the IDL PlotS procedure to draw the lines on the screen Reads the slider to determine brush thickness Modifies the mask and updates the screen

Wid_Base_0_Event Handles all other events (buttons and slider) The following code is contained within this procedure:  Testing if an image is valid before opening  Saving the filtered image  Smoothing the mask  Revert back to the original state

IFF_GUI This is where the widgets are created. Not too exciting.

Suggestions for Future Revisions All of my suggestions fall into one of three categories: Robustness and bug fixes Features (low-hanging fruit) Aesthetics

Suggestions: Robustness Properly handle TIFF, PNG, GIF, and color images of all kinds Fix the bug where if the user clicks outside the draw widget, drags the mouse inside, and releases, the program crashes when it tries to dereference a null pointer Fix the bug where it crashes if a user clicks on a button (other than open image) before an image is loaded

Suggestions: Features Undo last line drawn button Display color images and work on the channels individually Add the ability to draw boxes and circles Add the ability to save to different file formats other than PNG

Suggestions: Aesthetics Make the GUI shrink to accommodate smaller images, so less space is wasted

Demo The following is a demonstration of my program