Unformatted text preview:

Photogram Programmable Photoshop Language Project Report Ohan Oda Neesha Subramaniam Richard Ng Seikwon Kim oo2116 columbia edu Group Leader ns2295 columbia edu rjn2003 columbia edu sk2617 columbia edu Photogram 1 Introduction 3 1 1 Goal 3 1 2 Features 4 2 Language Tutorial 5 2 1 How to use Photogram 5 2 2 Image Processing Applications 5 2 3 Image Manipulation Collage 7 2 4 Computer Vision Applications Optical Flow 8 2 5 Image Manipulation Photomontage 12 3 Language Reference Manual 16 3 1 Lexical conventions 16 3 2 Input and Output of Photogram 19 3 3 Program Structure 19 3 4 Scope 22 3 5 Namespace 22 3 6 Data Types 22 3 7 Expressions Operators and Precedence 24 4 Project Plan 27 4 1 Process used for planning specification development and testing 27 4 2 Programming style guide used by the team 28 4 3 Project timeline 29 4 4 Roles and responsibilities of each team member 29 4 5 Software development environment used tools and languages 29 4 6 Project Log 30 5 Architectural Design 31 5 1 Block diagram showing the major components of our translator 31 5 2 Interfaces between the components 31 6 Test Plan 32 6 1 Goal 32 6 2 Phases 32 6 3 Sample Test Codes 33 7 Language Restrictions 37 8 Lessons Learned 38 8 1 Important Learning 38 8 2 Advice for future teams 38 9 Library Functions 39 9 1 Math Functions 39 9 2 Built in Image Processing Functionalities 40 9 3 Useful Functions 41 10 References 42 11 Appendix 43 2 Photogram 1 Introduction Adobe Photoshop the professional image editing standard and leader of the Photoshop digital imaging line has been the most prominent and powerful image editing tool over the years Although the software is very powerful due to its complexity and overwhelming graphic user interface it is difficult for the users to achieve the results they want without being very experienced Additionally even though Photoshop provides thousands of image editing functions such as resizing and filtering the capabilities of image manipulation are limited to what the software provides e g the software provides Gaussian blur motion blur radial blur and smart blur for blurring operations but the user cannot use their own specified blurring filter Further more undoing or fixing previous undesired operations is a tedious task using Photoshop One common occurrence is that a user performs several different operations on an image and finds out later that the operation step 3 is undesirable after completing operation step 10 Now he she is forced to cancel undo all of operations down to step 3 and then redoing all of the steps from 4 to 10 after either fixing or eliminating step 3 Another example of a tedious task in Photoshop is making multiple collages consisting of multiple images because applying the same operations on multiple images for multiple collages is extremely repetitive For a collage the user is required to cut and paste from many windows that contain images and it can easily reach the point where finding the desired image is a chore A repetitive task such as applying the same blurring filter on an entire directory of images also requires the user to go through the same operation for each image which is an inefficient time sink Thus it will be very beneficial if there is a language that can perform image editing functionalities The language solves all of the existing issues on Photoshop addressed above It will significantly save the time of people performing tedious image editions 1 1 Goal Photogram a programmable Photoshop language is a language that enables the user to perform Photoshop operations using an iterative coding process Photogram is meant to be easy to use portable powerful and expandable 1 1 1 Ease of use Photogram is a clear and intuitive language which allows users to edit photos and create animation by writing an algorithm Like Java or C Photogram uses a well defined set of basic syntaxes similar to Java and this makes Photogram programmer friendly 1 1 2 Portable Java is a cross platform portable language due to its own interpreter and since Photogram converts the user created program to Java code it is also portable You can execute the program on any platform where Java 1 5 Virtual Machine is installed 3 Photogram 1 1 3 Powerful Photogram enables the user to edit the photo for example sharpening blurring and changing colors with just few lines of code This power and efficiency allows work to be more productive as well as providing a clear outline of what was used to achieve the final result 1 1 4 Expandable Since Photogram is a programming language it is a simple matter to add one s own functions or even import any other libraries in order to use new functions that the user needs 1 2 Features Our language Photogram supports the following features Syntaxes and Semantics The syntaxes and semantics of Photogram is very similar to the Java language with one exception for declaring macros in which case C syntax is used Functions Photogram supports the implementation of functions with a return type and parameters The syntax for writing a function is the same as the Java language Importing Photogram supports importing functions written in other pg Photogram extension files by using include statement Non Object Oriented Photogram does NOT support implementation of classes objects however Photogram provides several built in classes such as Image Font Color Pixel Line Rectangle and Oval Arrays Photogram supports arrays the syntax for declaring an array being the same as that used in the Java language Editor We provide a specialized editor for Photogram which will open new pictureviewable windows so that users can easily find out the coordinates of the desired points in the input images However a programmer can choose not to use our editor and use any other word editors Image Processing Photogram provides some built in image processing functions that are useful or difficult to implement using Photogram code Caption Photogram supports the ability to create captions drawing a string of text on the image 4 Photogram 2 Language Tutorial 2 1 How to use Photogram 2 1 1 How to compiler Photogram program To compile a photogram program use the PGCompiler and type the following command C java PGCompiler PGSampleProgram pg After using PGCompiler to compiler the photogram code and there after generating the java code the user needs to compile the java code using the java compiler C javac PGSampleProgram java 2 1 2 How to run Photogram program To run a photogram program use


View Full Document

Columbia COMS W4115 - Photogram

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Loading Unlocking...
Login

Join to view Photogram and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Photogram and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?