170 likes | 296 Views
CS320n –Visual Programming. Image Manipulation. What We Will Do Today. Look at how to alter images using LabVIEW. Loading Images VI. Block Diagram of VI that allows user to load jpg images from a file and displays the image. Image Data. The image cluster contains a lot of data
E N D
CS320n –Visual Programming Image Manipulation
What We Will Do Today • Look at how to alter images using LabVIEW Image Manipulation
Loading Images VI • Block Diagram of VI that allows user to load jpg images from a file and displays the image Image Manipulation
Image Data • The image cluster contains a lot of data • The heart of the image is an array of ints • each int only uses 1 byte or 8 bits • represents a number from 0 – 255 • three ints in a row represent the red, green, and blue intensity for 1 pixel • elements 0, 1, 2 are for the pixel at row 0, column 0, the upper left corner Image Manipulation
Image Data Image Manipulation
Image Data Image Manipulation
RGB Colors • What color is that pixel at the top left corner? Looks very black • Unbundle image to get at image array Image Manipulation
RGB Colors • First three elements of image array are 27, 26, and 5 • Intensity of red from 0 to 255 • 0 is none, 255 is maximum • a little red, a little green, almost no blue • very close to black, all three 0 Image Manipulation
Viewing a Single Color • Developed a VI to do this in an early lab • a single function exists Controls and indicator added. Image Manipulation
Sample Single Colors Black. Moss? Image Manipulation
How Many Colors • If the encoding of an image allows red, green, and intensity values of 0 – 255 there are • 256 * 256 * 256 = 16,777,216 possible colors • 1 byte per color per pixel • 3 bytes total per pixel, 24 bits • a.k.a. 24 bit image Image Manipulation
Altering Images • Some programming tools allow individual pixels or areas to be affected, recolored. • We will look at altering image by affecting all pixels in the image • need to work with the color data • can work with the array of colors from image • OR “unflatten” the image data to a 2d array • go from an array of 1 dimension (like a list) to an array with 2 dimensions, like a table Image Manipulation
Unflatten Image Function • Most interested in the 24-bit pixmap Image Manipulation
Unflattening the Image Image Wire Displaying value in element 0,0 Shown as a hexadecimal number, base 16. 1B = red component, 1 * 16 + 11 * 1 = 27 1A = green component, 1 * 16 + 10 * 1 = 26 05 = blue component, 0 * 16 + 5 * 1 = 5 Image Manipulation
One filter – Invert image • Invert the image • set each pixel = 16,777,215 – original value • auto indexing really shines 2d array single element 1d array flatten back to image Image Manipulation
Original Image Manipulation
Result Image Manipulation