MATLIP MATLAB Like Language for Image Processing Pin Chin Huang ph2249 columbia edu Shariar Zaber Kazi szk2103 columbia edu Shih Hao Liao sl2937 columbia edu PoHsu Yeh py2157 columbia edu Motivation Easy to code Easy to access pixels of an image Easy to do image arithmetic operation Easy to do image convolution Easy to assign images of any size Easy to debug No cost for license Good Portability Easy to access one pixel of an image function main image x x imread rabbit jpg print x 1 1 RGB end public static void main String args BufferedImage x imnew 100 100 RGB x imread rabbit jpg System out println getImagePixel x 1 1 RGB static int getImagePixel BufferedImage im int col int row String channel 26 lines of java code Easy to do image arithmetic operation function main image x image y x x 1 x x 1 x x 1 x x 1 x x y end public static void main String args BufferedImage x imnew 100 100 RGB BufferedImage y imnew 100 100 RGB x imread rabbit jpg x BufferedImage clone BufferedImage doArithmetic x 1 OPERATION ADD x BufferedImage clone BufferedImage doArithmetic x 1 OPERATION SUB x BufferedImage clone BufferedImage doArithmetic x 1 OPERATION MUL x BufferedImage clone BufferedImage doArithmetic x 1 OPERATION DIV x BufferedImage clone BufferedImage doArithmetic x y OPERATION ADD static Object doArithmetic Object op1 Object op2 OPERATION op 150 lines of static Object clone Object src java code Easy to do image convolution function main image x kernel k x x k end public static void main String args BufferedImage x imnew 100 100 RGB Kernel k kernelinit x BufferedImage clone convolve x k static BufferedImage convolve BufferedImage im Kernel k 45 lines of java static Object clone Object src code Easy to assign image to image of different size function main image a image b a imnew 300 300 RGB b imnew 200 200 RGB a b end public static void main String args BufferedImage a imnew 100 100 RGB BufferedImage b imnew 100 100 RGB a imnew 300 300 RGB b imnew 200 200 RGB a BufferedImage clone b static BufferedImage imnew int width int height String type 50 lines of java static Object clone Object src code Easy to debug function main int i for i 0 int y 100 x x 1 end y 0 end syntax error in line 3 Fatal error exception Parsing Parse error function int m test int x end function main float x x 1 0 test x end Fatal error exception Failure Type mismatch in argument passing between x type int and x type float in function test Easy to debug function int m test end function main int x x 1 test x end function main image x imshow x x imread rabbit jpg x imshow x imsave x rabbit jpg x imnew 300 300 RGB imshow x end Fatal error exception Failure Wrong number of arguments passed to function test Fatal error exception Failure Cannot concatenate image type with string type in function main No cost for license Image Processing Toolbox 6 2 MATLAP Individual License For End user Activation types Standalone named user or designated computer 1 000 Buy Request a Quote via fax or e mail Contact Sales For an end user who wants to personally install administer and operate the software Group License For Workgroup Activation Types Standalone named users or designated computers Request a Quote via fax or e mail Contact Sales For organizations who would like to designate an administrator to manage a group of Individual licenses Tutorial introduction Variable declaration and assignment int a float b boolean c kernel k image i function main a 1 b 0 1 c true k kernelnew 10 10 k 0 0 0 1 0 3 0 4 i imnew 10 10 RGB end int a 3 float b 0 3 boolean c true Kernel k kernelnew 10 10 Image i imnew 10 10 RGB Arithmetic Operation Int a Int b float c float d funciton main a a b a a b a a b a a b a a b a mod a b c c d c c d c c d c c d end image a image b int c function main a a b a a b a a b a a b a a 2 b a a c b a a 2 0 NOT OK a 2 a NOT OK end kernel k1 kernel k2 float a function main k1 k1 k2 k1 k1 k2 k1 k1 k2 k1 k1 k2 k1 k1 2 0 k2 k1 k1 a k2 k1 k1 2 k2 NOT OK k1 2 0 k1 k2 NOT OK end Control Flow Statement Int x function main x 1 if x 1 x x 1 else x x 2 end int x funciton main x 1 If x 1 x x 1 end end Int x function main x 1 if x 1 x x 1 elseif x 2 x x 2 end int x function main x 1 If x 1 x x 1 elseif x 2 x x 2 elseif x 3 x x 3 else x x 4 end end Control Flow Statement function main int x int i for i 0 1 10 x x 1 end end function main Int x while x 3 x x 1 end end Function function int m test int x m d end function main Int d d test d end function test end function main test end function main Int d d test End function int m test end Recursion function int m foo int x if x 0 m foo x 1 else m 1 end end function int m bar int x m x 1 end function main print foo bar foo 5 end Example Flip the image vertically Example Flip the image vertically function image ret flip image im int height int width int i int j height getheight im width getwidth im ret imnew width height RGB for j 0 height 1 for i 0 width 1 ret i height j 1 rgb im i j rgb end end end function main image x image y x imread rabbit jpg imshow x y flip x imshow y end Example Flip the image vertically Example Flip the image horizontally function image ret flip image im int height int width function main int i image x int j image y height getheight im x imread rabbit jpg width getwidth im imshow x ret imnew width height RGB y flip x for j 0 height 1 imshow y for i 0 width 1 end ret width i 1 j rgb im i j rgb end end end Example Flip the image horizontally Example Blur the image function main image x image y kernel k k 0 25 0 0 0 25 0 0 0 0 0 0 0 25 0 0 0 25 x imread rabbit jpg x togray x imshow x y x k k k k k k k imshow y imsave y r3 gif end Example Blur the image Example Sharpen the …
View Full Document
Unlocking...