Skip to main content

2018 | Buch

Digital Image Processing: Practical Approach

insite
SUCHEN

Über dieses Buch

The SpringerBrief covers fundamentals of digital image processing including image concept, image file formats, creating user interfaces and many practical examples of processing images using C++ and Java. These practical examples include among other creating image histograms, performing lossless image compression, detecting change in colors, similarity-based image retrieval and others.

All practical examples are accompanied with an explanation how to create programs and the obtained results. This SpringerBrief can be very useful for the undergraduate courses on image processing, providing students with the basic tools in image analysis and processing. Practitioners and researchers working in this field will also find this research useful.

Inhaltsverzeichnis

Frontmatter
Chapter 1. Introduction to Digital Imaging
Abstract
Image is a two-dimensional array of samples or pixels, as illustrated in Fig. 1.1.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 2. Creating User Interface
Abstract
Every chapter in this book includes a demo program to explain the material, the theory behind digital image topics, and provides code that the reader can run and manipulate. Instead of writing command line demo programs with little user interaction, we opted to write programs with a User Interface (UI) that includes essential UI elements such as buttons, sliders, and ability to display images on the screen. Thus, in this chapter, we present the UI library we have chosen to use and how to use it in the context of the digital image programming.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 3. Image Loading and Rendering
Abstract
JPEG and PNG are some of the most popular digital image file types. Pixel values are compressed with some form of compression in these file, and as a result it is not possible to open a digital image file and directly read the pixel values. The image must be first be decoded, which returns the decompressed pixel values along with other necessary information such as image resolution. For this task, we use stb_image.h written by Sean Barrett which is an image loader library that can decode images and extract pixel values from JPEG and PNG files (https://​github.​com/​nothings/​stb).
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 4. Creating Image Histograms
Abstract
In this chapter, we discuss the basics on how to create color histograms for images. A histogram is a graphical representation of the number of pixels in an image. As an example, assume a 10 × 6 pixel image shown in Fig. 4.1. The pixels are one-byte data, and their values are between 0 and 255. The histogram for this simple image is shown in Fig. 4.2.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 5. Detecting Changes in Color
Abstract
In image processing, detecting change in color between pixels is necessary for tasks like image compression and object recognition. For this chapter, we have a written a program that shows how to compute differences in RGB values of a pixel and its right and bottom neighbors. If the difference is significant, the main pixel is colored red to distinguish it from the pixels surrounding it. Coloring a pixel red is simply making its R component full value of 255, and the other components (G and B) zero.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 6. Lossless JPEG Image Compression
Abstract
The main reasons for compression in multimedia systems are: (1) large storage requirements of multimedia data, (2) relatively slow storage devices which do not allow playing back uncompressed multimedia data in real time, and (3) the network bandwidth which does not allow real-time video data transmission.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 7. Similarity-Based Image Retrieval
Abstract
So far, we have only dealt with topics involving one or two images. The program demos were mostly about loading an image and performing a task e.g. converting to grayscale or hiding data in an image. With image retrieval, however, our task is to search for images from a large collection or database that are similar, in some manner, to a selected image. Measuring similarity can be done in many ways and depends on the problem at hand. There are techniques that involve analyzing images based on metadata e.g. file name, tags, etc. that are affiliated with the image. Other ways are based on the content of the image rather than metadata by processing the pixel values in some way. For this chapter, we’ve collected 200 images of various scenes and objects that make up the database which can be found in the ‘db’ folder in this chapter’s directory. The demo program is hard coded to work with these image, but you may change that by altering the source code and recompiling.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 8. Data Hiding in Digital Images
Abstract
Steganography is the art of hiding a piece of data within a transferred message. The secret data must be concealed in a way such that anyone observing the message should not notice any artifacts of its concealment. In our case, the message is an image file and the secret piece of data is any file we wish to hide.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 9. Image Transition
Abstract
In slideshow applications or video editors that are transition animations that reveal the next slide or image in various visual styles which may include fading in and out between the two images. The focus of this chapter is the transition from one image to another over time as can be seen in Fig. 9.2. Transition animations are applied over a period of time to both images and each pixel to be displayed is altered slightly each instance depending on a function of time. For animating a linear transition between images where one image turns into a different image, we use the following formula where each pixel value is determined by a transition time point t whose range is between 0 and 1:The variables are defined as: r is the resultant pixel value, a is pixel from image A, b is a pixel from image B, and t is the transition variable. This transition function is linear as in time variable t linearly controls the amount of reveal of image B over A.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 10. Image-to-Image Embedding
Abstract
In this chapter we present a program in which the user can embed an image onto another image. The user selects two images, one used as the background, and one to place on top, and can select wherever on the background image to place the second image. As shown in Fig. 10.1, we can select a background image, in this case a TV in Times Square, and embed another image onto it, in this case a playful red panda. The program also features the ability to resize the overlay image.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 11. Changing Color of Selected Objects
Abstract
The project for this chapter was completed by the FAU student Mila Manastasova as part of the Introduction to Image and Video Processing class at Florida Atlantic University taught in Spring 2018.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 12. Loading and Inserting Objects in an Image
Abstract
The project aims to use the ImGui libraries to create a program with friendly user interface. The project was completed by the FAU student Mila Manastasova as part of the Introduction to Image and Video Processing class at Florida Atlantic University taught in Spring 2018.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Chapter 13. Swap Faces in an Image
Abstract
The project was completed by the FAU student Connor as part of the Introduction to Image and Video Processing class at Florida Atlantic University taught in Spring 2018.
Borko Furht, Esad Akar, Whitney Angelica Andrews
Metadaten
Titel
Digital Image Processing: Practical Approach
verfasst von
Borko Furht
Esad Akar
Whitney Angelica Andrews
Copyright-Jahr
2018
Electronic ISBN
978-3-319-96634-2
Print ISBN
978-3-319-96633-5
DOI
https://doi.org/10.1007/978-3-319-96634-2