<< Chapter < Page Chapter >> Page >

Output when the image is too wide

Image 2 shows the output produced by the program when the width of the image is wider than the width of the display window.

Image 2. output for image too wide.

Outproduced when the image is wider than the display windoe.
Image 2. Output for image too wide.

Output when the image is too tall

Image 3 shows the output that is produced when the height of the image is greater than the height of the display window.

Image 3. output for image too tall.

Output produced when the height of the image is greater than the height of the display window.
Image 3. Output for image too tall.

General background information

Students in my courses are frequently required to

  1. Examine the input and output images from an image processing algorithm.
  2. Deduce the nature of the algorithm required to transform the input image into the output image.
  3. Implement the algorithm in program code.
  4. Demonstrate the correctness of their solution.

Items 2 and 4 often require the ability to make precise color measurements on a pixel-by-pixel basis. The sketch that I will explain in this module providesthe ability to make such measurements.

For example, the image shown in Image 4 was created by applying a common mathematical algorithm to the image shown in Image 1 .

Image 4. output produced by a common mathematical algorithm.

Image produced by applying a common mathematical algorithm to the image in Image 1.
Image 4. Output produced by a common mathematical algorithm.

The RGB color values for both images were displayed at the same pixel location. A student would be expected to compare the color values at severallocations, deduce, and then implement the algorithm in program code.

Discussion and sample code

This sketch consists of two Java classes. The code for the driver class named Pr0120a (the one in the leftmost panel of the PDE) is provided in Listing 10 . The code for the runner class named Pr0120aRunner is provided in Listing 11 .

I will break this code down and explain it in fragments.

As shown in Image 1 , this sketch displays the coordinates of the mouse pointer along with the RGB color values of the pixel atthe mouse pointer whenever the user points to a location inside the display window and presses a mouse button.

It is easy to modify the sketch to cause it to display that information without the requirement to press a mouse button.

The sketch also displays the width and the height of the image.

The sketch displays an error message in place of the image if the image is wider or taller than the output display window.

The class named Pr0120a

Beginning of the class

Listing 1 shows the special text that you must include in the code if you plan to use the JavaScript display mode anddisplay the sketch in your HTML 5 compatible browser.

Listing 1 also shows the declaration of three instance variables.

Listing 1. beginning of the class named pr0120a.

//@pjs preload required for JavaScript version in browser. /* @pjs preload="Pr0120a.jpg"; */PImage img; PFont font;Pr0120aRunner obj;
Listing 1. Beginning of the class named Pr0120a.

The setup method

The setup method is shown in its entirety in Listing 2 .

Listing 2. the setup method.

void setup(){ size(400,344);frameRate(30); img = loadImage("Pr0120a.jpg");obj = new Pr0120aRunner(); font = createFont("Arial",16,true);}//end setup
Listing 2. The setup method.

Set the size of the display window

The setup method begins by calling the size method to set the size of the display window. Recall that the call to the size method must be the first line of code in the setup method. If the size method is not called, the display window will be given a default size of 100 x 100 pixels.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, The processing programming environment. OpenStax CNX. Feb 26, 2013 Download for free at http://cnx.org/content/col11492/1.5
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'The processing programming environment' conversation and receive update notifications?

Ask