SlideShare a Scribd company logo
1 of 15
Enhanced Image Manipulation Library for UNIX
By: Matthew Weingarten
CIS 4914 Senior Project
12/8/15
Summary
● Motivation: Image analysis is a growing field of interest, especially given the
large file sizes that images are allowed to be
● Problem: Other operations can be implemented in UNIX-Based Image Analyst
(UIA), while others can be enhanced
● Solution: Implement new operations in UIA while improving/debugging
previous ones
Literature Sources
"ANSI-C." Wikipedia. Wikimedia Foundation. Web. 7 Sept. 2015. <https://en.wikipedia.org/wiki/ANSI_C>.
"Fast Walsh-Hadamard Transform." MathWorks. MathWorks. Web. 15 Oct. 2015.
<http://www.mathworks.com/help/signal/ref/fwht.html>.
"Hadamard Transform." Wikipedia. Wikimedia Foundation. Web. 7 Sept. 2015.
"Home." ImageMagick: Convert, Edit, Or Compose Bitmap Images. ImageMagick Studio LLC. Web. 24 Sept.
2015. <http://imagemagick.org/script/index.php>.
Johnson, Jeremy. "Lecture 4: Walsh-Hadamard Transform Algorithms." Jeremy Johnson. Jeremy Johnson, 5
Feb. 2004. Web. 7 Sept. 2015. <https://www.cs.drexel.edu/~jjohnson/wi04/cs680/lectures/wht.html>.
"Walsh-Hadamard Transform." MathWorks. MathWorks. Web. 15 Oct. 2015.
Literature Sources (continued)
"The Hadamard Transform." Neuron. Web. 8 Oct. 2015. <http://neuron-ai.tuke.sk/hudecm/science/7/7.html>.
"What Is the Walsh-Hadamard Transform and What Is It Good For?" Stack Exchange. 12 Mar. 2012. Web. 7
Sept. 2015. <http://dsp.stackexchange.com/questions/1693/what-is-the-walsh-hadamard-transform-and-
what-is-it-good-for>.
Work Performed
• Walsh-Hadamard transformation (WHT) written
• Integrated WHT into UIA by the principle of separability
• Enhanced error checking
• Wrote Markdown file documenting UIA’s purpose and how each operation
works
• Make my transform perform the same as MATLAB’s
• Error analysis of my WHT implementation vs. MATLAB’s
Work Performed (Continued)
• Error analysis on segments of the image to better identify any sources of error
• Additional test cases generated and verified to be working
• Additional comments in the code written to assist first-time readers
• Wrote final report and prepared final presentation
Results – Basic Operation
Program run
with wanted
command
and
arguments
Argument
checking for
validity
Convert input
image(s) to
Portable
Graymap
Format
(PGM)
Operation run
with new
input images
Images
converted
back to
original type,
temp files
removed, free
unneeded
memory, etc.
Results - Documentation
Results – Image 1
From left to right: Original image, UIA output, MATLAB output
Mean and RMSE of error values: 0.000, 0.000 for the whole
image and each segment (4 segments chosen)
Results – Image 2
From left to right: Original image, UIA output, MATLAB output
Mean and RMSE of error values: 0.000, 0.000 for the whole
image and each segment (4 segments chosen)
Results – Image 3
From left to right: Original image, UIA output, MATLAB output
Mean and RMSE of error values: 0.000, 0.000 for the whole
image and each segment (3 segments chosen)
Conclusions
• Increased awareness of image manipulation methods and how to implement
them in a programming language
• Experience with professional documentation and debugging
• Experience with working on existing code
Pros/Cons
• Pros
• Added a new transformation to UIA
• Modernized and enhanced its pre-existing code
• Cons
• Code will soon become obsolete with new releases of UNIX and
ImageMagick
• Overhead with learning undocumented code
Post-Mortem
• Would have researched other image manipulation techniques more so they
could be better understood for improvement purposes
• Would have implemented additional operations for comparison purposes
Future Work
• Additional operations so UIA becomes a more complete library
• Make UIA error-free
• Open-sourcing the code so it can be accessible by the masses
• More statistical analysis between different methods for comparison purposes

More Related Content

Viewers also liked (11)

William Shakespeare
William ShakespeareWilliam Shakespeare
William Shakespeare
 
T he elizabetha era
T he elizabetha eraT he elizabetha era
T he elizabetha era
 
Performing arts in ancient greece (theatre)
Performing arts in ancient greece (theatre)Performing arts in ancient greece (theatre)
Performing arts in ancient greece (theatre)
 
The Elizabethan Age
The Elizabethan AgeThe Elizabethan Age
The Elizabethan Age
 
Elizabethan period
Elizabethan periodElizabethan period
Elizabethan period
 
The Features of The Elizabethan Age
The Features of The Elizabethan Age The Features of The Elizabethan Age
The Features of The Elizabethan Age
 
Elizabethan Period
Elizabethan PeriodElizabethan Period
Elizabethan Period
 
Elizabethan Theatre
Elizabethan Theatre Elizabethan Theatre
Elizabethan Theatre
 
William Shakespeare Presentation
William Shakespeare PresentationWilliam Shakespeare Presentation
William Shakespeare Presentation
 
Shakespeare Powerpoint
Shakespeare PowerpointShakespeare Powerpoint
Shakespeare Powerpoint
 
William Shakespeare powerpoint
William Shakespeare powerpointWilliam Shakespeare powerpoint
William Shakespeare powerpoint
 

Similar to Presentation 3

marcs_photo_cropping_slides
marcs_photo_cropping_slidesmarcs_photo_cropping_slides
marcs_photo_cropping_slides
Marc Abramowitz
 

Similar to Presentation 3 (20)

Final Report
Final ReportFinal Report
Final Report
 
UserZoom Education Series - Tips & Tricks: Inserting images into surveys
UserZoom Education Series - Tips & Tricks: Inserting images into surveysUserZoom Education Series - Tips & Tricks: Inserting images into surveys
UserZoom Education Series - Tips & Tricks: Inserting images into surveys
 
Project report
Project reportProject report
Project report
 
Bottoms up: building a service on a solid foundation of user needs
Bottoms up: building a service on a solid foundation of user needsBottoms up: building a service on a solid foundation of user needs
Bottoms up: building a service on a solid foundation of user needs
 
C# .NET Media Manager
C# .NET Media ManagerC# .NET Media Manager
C# .NET Media Manager
 
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
Using Crowdsourced Images to Create Image Recognition Models with Analytics Z...
 
Fast and Reproducible Deep Learning
Fast and Reproducible Deep LearningFast and Reproducible Deep Learning
Fast and Reproducible Deep Learning
 
5212303961620480 1585670953 joanna_stachera_proposal_g_soc2020
5212303961620480 1585670953 joanna_stachera_proposal_g_soc20205212303961620480 1585670953 joanna_stachera_proposal_g_soc2020
5212303961620480 1585670953 joanna_stachera_proposal_g_soc2020
 
Project Matsu
Project MatsuProject Matsu
Project Matsu
 
DSP Report
DSP ReportDSP Report
DSP Report
 
BE-DIP-Lab-Manual.pdf
BE-DIP-Lab-Manual.pdfBE-DIP-Lab-Manual.pdf
BE-DIP-Lab-Manual.pdf
 
IRJET- Sketch-Verse: Sketch Image Inversion using DCNN
IRJET- Sketch-Verse: Sketch Image Inversion using DCNNIRJET- Sketch-Verse: Sketch Image Inversion using DCNN
IRJET- Sketch-Verse: Sketch Image Inversion using DCNN
 
Open Source TIMES Excel Reader
Open Source TIMES Excel ReaderOpen Source TIMES Excel Reader
Open Source TIMES Excel Reader
 
Design Steps for any MultiMedia Applications
Design Steps for any MultiMedia ApplicationsDesign Steps for any MultiMedia Applications
Design Steps for any MultiMedia Applications
 
ArgoUML.ppt
ArgoUML.pptArgoUML.ppt
ArgoUML.ppt
 
HANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNING
HANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNINGHANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNING
HANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNING
 
HANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNING
HANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNINGHANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNING
HANDWRITTEN DIGIT RECOGNITION USING MACHINE LEARNING
 
OpenPOWER Workshop in Silicon Valley
OpenPOWER Workshop in Silicon ValleyOpenPOWER Workshop in Silicon Valley
OpenPOWER Workshop in Silicon Valley
 
CSE367 Lecture 1 image processing lecture
CSE367 Lecture 1 image processing lectureCSE367 Lecture 1 image processing lecture
CSE367 Lecture 1 image processing lecture
 
marcs_photo_cropping_slides
marcs_photo_cropping_slidesmarcs_photo_cropping_slides
marcs_photo_cropping_slides
 

Presentation 3

  • 1. Enhanced Image Manipulation Library for UNIX By: Matthew Weingarten CIS 4914 Senior Project 12/8/15
  • 2. Summary ● Motivation: Image analysis is a growing field of interest, especially given the large file sizes that images are allowed to be ● Problem: Other operations can be implemented in UNIX-Based Image Analyst (UIA), while others can be enhanced ● Solution: Implement new operations in UIA while improving/debugging previous ones
  • 3. Literature Sources "ANSI-C." Wikipedia. Wikimedia Foundation. Web. 7 Sept. 2015. <https://en.wikipedia.org/wiki/ANSI_C>. "Fast Walsh-Hadamard Transform." MathWorks. MathWorks. Web. 15 Oct. 2015. <http://www.mathworks.com/help/signal/ref/fwht.html>. "Hadamard Transform." Wikipedia. Wikimedia Foundation. Web. 7 Sept. 2015. "Home." ImageMagick: Convert, Edit, Or Compose Bitmap Images. ImageMagick Studio LLC. Web. 24 Sept. 2015. <http://imagemagick.org/script/index.php>. Johnson, Jeremy. "Lecture 4: Walsh-Hadamard Transform Algorithms." Jeremy Johnson. Jeremy Johnson, 5 Feb. 2004. Web. 7 Sept. 2015. <https://www.cs.drexel.edu/~jjohnson/wi04/cs680/lectures/wht.html>. "Walsh-Hadamard Transform." MathWorks. MathWorks. Web. 15 Oct. 2015.
  • 4. Literature Sources (continued) "The Hadamard Transform." Neuron. Web. 8 Oct. 2015. <http://neuron-ai.tuke.sk/hudecm/science/7/7.html>. "What Is the Walsh-Hadamard Transform and What Is It Good For?" Stack Exchange. 12 Mar. 2012. Web. 7 Sept. 2015. <http://dsp.stackexchange.com/questions/1693/what-is-the-walsh-hadamard-transform-and- what-is-it-good-for>.
  • 5. Work Performed • Walsh-Hadamard transformation (WHT) written • Integrated WHT into UIA by the principle of separability • Enhanced error checking • Wrote Markdown file documenting UIA’s purpose and how each operation works • Make my transform perform the same as MATLAB’s • Error analysis of my WHT implementation vs. MATLAB’s
  • 6. Work Performed (Continued) • Error analysis on segments of the image to better identify any sources of error • Additional test cases generated and verified to be working • Additional comments in the code written to assist first-time readers • Wrote final report and prepared final presentation
  • 7. Results – Basic Operation Program run with wanted command and arguments Argument checking for validity Convert input image(s) to Portable Graymap Format (PGM) Operation run with new input images Images converted back to original type, temp files removed, free unneeded memory, etc.
  • 9. Results – Image 1 From left to right: Original image, UIA output, MATLAB output Mean and RMSE of error values: 0.000, 0.000 for the whole image and each segment (4 segments chosen)
  • 10. Results – Image 2 From left to right: Original image, UIA output, MATLAB output Mean and RMSE of error values: 0.000, 0.000 for the whole image and each segment (4 segments chosen)
  • 11. Results – Image 3 From left to right: Original image, UIA output, MATLAB output Mean and RMSE of error values: 0.000, 0.000 for the whole image and each segment (3 segments chosen)
  • 12. Conclusions • Increased awareness of image manipulation methods and how to implement them in a programming language • Experience with professional documentation and debugging • Experience with working on existing code
  • 13. Pros/Cons • Pros • Added a new transformation to UIA • Modernized and enhanced its pre-existing code • Cons • Code will soon become obsolete with new releases of UNIX and ImageMagick • Overhead with learning undocumented code
  • 14. Post-Mortem • Would have researched other image manipulation techniques more so they could be better understood for improvement purposes • Would have implemented additional operations for comparison purposes
  • 15. Future Work • Additional operations so UIA becomes a more complete library • Make UIA error-free • Open-sourcing the code so it can be accessible by the masses • More statistical analysis between different methods for comparison purposes