We did it!<\/p>\n
My buddy and I finally acomplish our project for our TC101 class.<\/p>\n
Well, basically, our program had to do the following:<\/p>\n
“You will create a command-line program that uses two-dimensional arrays or matrices to process images. You cannot simply call graphics libraries to manipulate the images directly but must implement the functions with your own algorithms. The input to each operation is an image (you choose to support any of JPEG, PNG) and the output is the modified image. The idea is to have a final project which shows your mastery of the topics in this course”.<\/p>\n
I was really hard to acomplish but Eduardo and I worked together and we made it!<\/p>\n
The user is able to type in the name of the file (a picture) and the program will process the image outputting a different file than the first one.<\/p>\n
There is a huge code!<\/p>\n
It looks like this:<\/p>\n
#include <Magick++.h><\/span>\n#include <iostream><\/span>\n#include <cmath><\/span>\nusing<\/span> namespace<\/span> std;<\/span>\nusing<\/span> namespace<\/span> Magick;<\/span>\n\nvoid<\/span> grayscale<\/span> (string<\/span> in,<\/span> string<\/span> out){<\/span>\n Image<\/span> image;<\/span>\n image.read(<\/span> in<\/span> );<\/span>\n int<\/span> x<\/span> =<\/span> image.rows();<\/span>\n int<\/span> y<\/span> =<\/span> image.columns();<\/span>\n Color<\/span> image_array<\/span> [x]<\/span> [y];<\/span>\n Color<\/span> original;<\/span>\n Color<\/span> graysc;<\/span>\n int<\/span> col;<\/span>\n\n\n for<\/span> (<\/span>int<\/span> i=<\/span>0<\/span>;<\/span> i<\/span> <<\/span> x;<\/span> i++){<\/span> \n for<\/span> (<\/span>int<\/span> u<\/span> =<\/span> 0<\/span>;<\/span> u<\/span> <<\/span> y;<\/span> u++){<\/span> \n original<\/span> =<\/span> image.pixelColor(u,i);<\/span> \n image_array<\/span> [i][u]<\/span> =<\/span> original;<\/span>\n col<\/span> =<\/span> (original.redQuantum()<\/span> +<\/span> original.greenQuantum()<\/span> +<\/span> original.blueQuantum())<\/span> \/<\/span> 3<\/span>;<\/span>\n graysc.redQuantum(col);<\/span>\n graysc.greenQuantum(col);<\/span>\n graysc.blueQuantum(col);<\/span>\n image_array<\/span> [i]<\/span> [u]<\/span> =<\/span> graysc;<\/span>\n image.pixelColor(u,<\/span> i,<\/span> graysc);<\/span>\n }<\/span>\n }<\/span>\n image.write(<\/span> out<\/span> );<\/span>\n}<\/span>\n\nvoid<\/span> scale<\/span>(string<\/span> in,<\/span> string<\/span> out){<\/span>\n Image<\/span> image;<\/span>\n image.read(<\/span> in<\/span> );<\/span>\n\n int<\/span> x<\/span> =<\/span> image.rows();<\/span>\n int<\/span> y<\/span> =<\/span> image.columns();<\/span>\n int<\/span> xf<\/span> =<\/span> x\/<\/span>2<\/span>;<\/span>\n int<\/span> yf<\/span> =<\/span> y\/<\/span>2<\/span>;<\/span>\n Image<\/span> image2(<\/span> Geometry(yf,<\/span> xf),<\/span> Color(MaxRGB,<\/span> MaxRGB,<\/span> MaxRGB,<\/span> 0<\/span>));<\/span>\n Color<\/span> image_array<\/span> [x]<\/span> [y];<\/span>\n Color<\/span> image_array2<\/span> [xf]<\/span> [yf];<\/span>\n Color<\/span> pixel1,<\/span> pixel2,<\/span> pixel3,<\/span> pixel4,<\/span> pixel5;<\/span>\n int<\/span> red,blue,green;<\/span>\n Color<\/span> newRGB,<\/span> newRGB2;<\/span>\n\n for<\/span> (<\/span>int<\/span> i=<\/span>0<\/span>;<\/span> i<\/span> <<\/span> x;<\/span> i++){<\/span>\n for<\/span> (<\/span>int<\/span> u<\/span> =<\/span> 0<\/span>;<\/span> u<\/span> <<\/span> y;<\/span> u++){<\/span>\n pixel1<\/span> =<\/span> image.pixelColor(u,i);<\/span>\n image_array<\/span> [i][u]<\/span> =<\/span> pixel1;<\/span>\n }<\/span>\n }<\/span>\n\n for<\/span> (<\/span>int<\/span> i=<\/span>0<\/span>;<\/span> i<\/span> <<\/span> x;<\/span> i<\/span> =<\/span> i+<\/span>2<\/span>){<\/span>\n for<\/span> (<\/span>int<\/span> u<\/span> =<\/span> 0<\/span>;<\/span> u<\/span> <<\/span> y;<\/span> u<\/span> =<\/span> u+<\/span>2<\/span>){<\/span>\n \t int<\/span> x2<\/span> =<\/span> i\/<\/span>2<\/span>;<\/span>\n \t int<\/span> y2<\/span> =<\/span> u\/<\/span>2<\/span>;<\/span>\n pixel2<\/span> =<\/span> image_array<\/span> [i]<\/span> [u];<\/span>\n pixel3<\/span> =<\/span> image_array<\/span> [i+<\/span>1<\/span>]<\/span> [u];<\/span>\n pixel4<\/span> =<\/span> image_array<\/span> [i]<\/span> [u+<\/span>1<\/span>];<\/span>\n pixel5<\/span> =<\/span> image_array<\/span> [i+<\/span>1<\/span>]<\/span> [u+<\/span>1<\/span>];<\/span>\n red<\/span> =<\/span>