Chapter 1 Introduction
1.4 Thesis Organization
The remainder of this thesis is organized as follows. In Chapter 2, we review related works. In Chapter 3, the proposed methods for creation of irregular- hexagonal-tiled images, information embedding, and information extraction in irregular-hexagonal-tiled images are described. In Chapter 4, the proposed methods for creation of tile image database and tile-overlapping mosaic images, information embedding, and information extraction in tile-overlapping mosaic images are
described. In Chapter 5, we describe the proposed methods for creation of variable-sized mosaic images, information embedding, and information extraction in variable-sized mosaic images. Conclusions of our works as well as discussions on future works are included in Chapter 6.
Chapter 2
Review of Related Works
2.1 Previous Studies on
Non-photorealistic Rendering
Non-photorealistic rendering (NPR) is a new and developing domain in computer graphics in recent years. It can express more esthetic arts than traditional photorealistic rendering. Using computers to imitate skills of painters and painting styles, we can conduct painting and obtain results which seem to be painted by famous painters, and the working time is short. How to imitate and study painting skills by computers are the major goals of NPR. Most investigations on NPR concentrate on occidental art paintings. Only a few studies on Chinese painting styles are found in the NPR domain.
Guo, et al. [1] presented an approach to generating paintings on photographic images with the style encoded by example paintings and adopted representative brushes extracted from the example paintings as the painting primitives. Figure 2.1 shows the used brushes. An experimental result is shown in Figure 2.2. Their method can be divided into the following components: (1) brush library construction; (2) region segmentation; (3) grounding layer synthesis; (4) direction field construction; (5) brush painting; and (6) fusion with images.
Chen [2] presented an approach to automatic generation of pencil sketching with the effects of paper texture. An experimental result is shown in Figure 2.3. His method can be described as follows:
(1) histogram-based image subdivision into four layers (bright, grey, darker, darkest);
(2) revised LIC (Line Integral Convolution) for pencil stroke synthesis on each layer, except for the bright layer;
(3) center-off filtering for silhouette generation;
(4) silhouette enhancement;
(5) fusion of sketching strokes in different layers, silhouettes, and enhanced parts, and paper texture.
Baxter, et al. [3] presented a painting system with an intuitive haptic interface, which serves as a “semi-automatic” platform for users to create paintings interactively with computer systems. This framework allows artists to choose proper brushes from a wide selection, and also allows artists to mix and create an almost unlimited number of colors through a simple, unified interface as shown in Figure 2.5. Figure 2.4 shows some generated examples of strokes. Some artworks created using this system are shown in Figure 2.6. We show other experimental results in Figure 2.7. Figure 2.7 (a) is a watercolor image created by real-time simulation of a watery paint algorithm from Laerhoven and Reeth [4]. Figure 2.7 (b) is an image created from Hertzmann [5].
Figure 2.7 (c) is a computer-generated watercolor from [6]. Figure 2.7 (d) is an image created from Chen [7].
(a) (b)
Figure 2.1 The brushes selection process. (a) An input image: Olive Grove by Van Gogh. (b) Brushes selected from Van Gogh’s Olive Grove.
(a) (b)
Figure 2.2 An experimental result. (a) An original image. (b) An image created from Guo, et al. [1].
(a) (b)
Figure 2.3 An experimental result. (a) An original image. (b) An image created from Chen [2].
Figure 2.4 Illustration of real brushes, model for each, and example strokes generated with each [3].
(a) (b)
Figure 2.5 Graphic user interface [3]. (a) The virtual canvas with the brush rack and a part of the palette.
(b) The brush rack and the palette for color mixing.
(a) (b)
Figure 2.6 The artworks created using the system from [3]. (a) A painting by Rebecca Holmberg. (b) A painting by Lauren Adams.
(a)
(b)
(c)
Figure 2.7 Samples of computer-generator art images. (a) An image created from Laerhoven and Reeth [4]. (b) An image created from Hertzmann [5]. (c) A computer-generator watercolor from [6].
(d) An image created from Chen [7].
(d)
Figure 2.7 Samples of computer-generator art images. (a) An image created from Laerhoven and Reeth [4]. (b) An image created from Hertzmann [5]. (c) A computer-generator watercolor from [6]. (d) An image created from Chen [7]. (continued)
2.2 Previous Studies on Mosaic Images
Mosaic images are surface decorations composed of numerous small tiles, which are often of similar shapes or sizes, but in different colors. Tile mosaics appeared in Greek and Roman times over 2000 years ago, and are still widely used today. Creation of them is a new research topic in recent years.
Kojima, et al. [8] proposed a top-down approach that first generates a mosaic based on global features such as image gradations, and then incorporates local features into the underlying partition based on the global features. More specifically, they first constructed a quadrilateral mosaic using the global features, and then incorporated local features such as object silhouettes specified by users into the existing global mosaic by referring to the dual network of the mosaic partition. They proposed an effective algorithm organized in two phases as shown in Figure 2.8.
Figure 2.9 is one of their experimental results.
Haeberli [9] used voronoi diagrams, placing the sites at random and filling each
region with a color sampled from the underlying image. Figure 2.10 is an experimental result. Obviously, the effects of edge features are not very good.
Hausner [10] proposed a method to create tile mosaic images by utilizing centroidal voronoi diagrams, as shown in Figure 2.11. In Hausner [10], the method proposed by Hoff [11] is extended to draw a voronoi diagram efficiently, and Lloyd’s algorithm [12] was utilized to produce centroidal voronoi diagrams by moving each seed to the centroid of its voronoi region.
Figure 2.8 Steps in the proposed method from Kojima, et al. [8].
(a) (b) (c)
Figure 2.9 Experimental results from Kojima, et al. [8]. (a) An original image. (b) A mosaic image only with global features. (c) A mosaic image with both global and local features.
Figure 2.10 An experimental result by using Haeberli’s method [9].
Figure 2.11 An image created from Hausner [10].
2.3 Previous Studies on Information Hiding Techniques
Many information hiding techniques have been proposed to embed data into a given media for various purposes. Information hiding in images mostly aims at taking the advantage of the weaknesses of the human visual system, for example, by changing the least significant bits of the pixels of a cover image to embed information [13]. The information embedded in an image can be used to protect the copyright of the image, verify the authenticity of the image, convey a secret message, and so on.
Researches on this topic can be classified into three approaches, namely, the spatial-domain approach, the frequency-domain approach, and the combination of them [14]. Ni, et al. [15] presented a novel reversible data hiding algorithm in the spatial domain by utilizing the zero or the minimum point of the histogram and slightly modified the pixel values to embed data. Cheng and Tsai [16] proposed a DCT-based method for embedding an invisible watermark by adjusting the magnitude relation of certain DCT coefficient pairs in the frequency domain. No matter what domains they belong to, most of these researches are based on pixel-wise or block-wise operations. Generally speaking, information hiding in the frequency domain is more robust than that in the spatial domain.
2.4 Previous Studies on Information Hiding in Art Images
Lin [17] proposed two methods to hide information in image mosaics. One is to
manipulate the four borders of tile images. The other is to modify the histogram of tile images. Hung [18] proposed two methods to hide information in art images. One is to embed data in the tile mosaic image by modifying the orientations, sizes, and textures of tile images. The other is to embed data in the stained glass image by cracking glasses slightly. Hsu [20] proposed three methods to hide information in art images.
One is to embed data in digital puzzle images by modifying the orientations, sizes, and angles of the puzzle image. Another is to embed data in the pointillistic image by varying the RGB values of each color dot of the pointillistic image. The other is to embed data in the circular-dotted image by modifying the drawing order of the circular dots of the circular-dotted image. Some image mosaics created by Lin [17]
are presented in Figure 2.12. Some tile mosaic images and stained glass images created by Hung [18] are shown in Figure 2.13. Some art images created by Hsu [20]
are shown in Figure 2.14.
(a) (b)
Figure 2.12 Image mosaics created by Lin [17]. (a) A mosaic image of Lena. (b) A mosaic image of Albert Einstein.
(a)
(b)
Figure 2.13 Art images created by Hung [18]. (a) A tile mosaic image. (b) A stained glass image.
(a)
(b)
(c)
Figure 2.14 Art images created by Hsu [20]. (a) A digital puzzle image. (b) A digital pointillistic image.
(c) A digital circular-dotted image.
Chapter 3 Creation of
Irregular-Hexagonal-Tiled Image for Information Hiding
3.1 Overview of Proposed Method
Hsu [20] proposed a method to create a pointillistic image and embed data in it by varying the RGB values of each color dot in the pointillistic image. They used small circles to fill the image to create the effect of pointillism. The idea of the proposed method to be described subsequently comes from this study.
In geometry, there are only triangles, squares, and hexagons that can be repeated and combined closely to one another and do not produce holes or overlapping areas.
In these shapes, a hexagon has the largest number of vertices. So, we decide to utilize a hexagonal tile to be the basic unit when we create an art image. We found that we can implement information hiding works by modifying the locations of pairs of two specific vertices and changing the inner colors of the hexagons. Because of the vertex location modifications, the hexagonal shape appears to be irregular. So, we name the resulting art image an irregular-hexagonal-tiled image. We will describe the image creation and the information hiding processes for such images in the following sections.
3.2 Proposed
Irregular-Hexagonal-Tiled Image Creation Process
3.2.1 Idea of Image Creation Process
Because hexagons can be combined closely to one another with no overlapping areas and because the number of their vertices is the largest among the above-mentioned three shapes, we decided to use hexagonal tiles to create an art image, as mentioned previously. But we found that if all hexagonal tiles are uniform in shape, the created image will be too dull. We also found that a vertex is used simultaneously by every three neighboring hexagons. An illustration is shown in Figure 3.1, in which vertex4 is co-used by hexagonB, hexagonC, and hexagonE, and vertex5 is co-used by hexagonA, hexagonB, and hexagonC. So, we may modify the locations of every pair of such two specific vertices of the combined hexagonal tiles to create more vivid effect in the resulting image. An illustration of a hexagonal shape with vertex numbering is shown in Figure 3.2.
In the proposed vertex position modification, with Figure 3.2 as an illustration, we just modify the y coordinate of vertex4, and the x coordinate of vertex5. Figure 3.3 illustrates a result after modifying these two vertices in hexagonB.
A flowchart of the process of creating irregular-hexagonal-tiled images is shown in Figure 3.4. The first step is to prepare two random arrays. The second is to modify the locations of two specific vertices of the hexagons corresponding to the random array, respectively. Third, we fill the inner region of the hexagonal tiles with the colors of the center of the original hexagon. Finally, we draw a black border for each tile. The detail of the creation process will be described in the next section.
Figure 3.1 The combined hexagonal-tiled image.
Figure 3.2 Vertex4 and vertex5 will be modified.
Figure 3.3 The combined hexagonal-tiled image after modifying vertex4 and vertex5.
Input image
Figure 3.4 A flowchart of the irregular-hexagonal-tiled image creation process.
3.2.2 Detail of Image Creation Process
The default width of the hexagonal tile is 6 pixels. The user can adjust the size, and input a desired value while executing the program. The detailed process is described as an algorithm as follows.
Algorithm 3.1: irregular-hexagonal-tiled image creation process.
Input: an image I and the width w of a hexagon.
Output: an irregular-hexagonal-tiled image I'.
Steps:
Step 1. Figure out how many hexagonal tiles will be drawn in an
irregular-hexagonal-tiled image by utilizing the input width w and the width of the original image.
Step 2. Create two random arrays RA1 and RA2.
Step 3. Modify the locations of the above-mentioned two specific vertices using RA1 and RA2, respectively, like the example illustrated in Figure 3.2 and Figure
3.3.
Step 4. Draw the resulting hexagonal tile at the upper leftmost corner of the output image I'.
Step 5. Conduct the same operations of Steps 1 through 3 to draw hexagonal tiles in a raster scanning manner.
In Step 2,we must create RA1 and RA2. We use Algorithm 3.2 below to describe the creation process.
Also, in Step 4, drawing of a hexagonal tile is divided into two smaller steps as follows.
(1) Fill the inner region of the hexagonal tile with the colors of the center of the original hexagonal shape.
(2) Draw a black border around the hexagonal tile.
Algorithm 3.2: create a random array.
Input: the number N of hexagonal tiles which will be drawn.
Output: a random array R.
Step 1. Set the array whose size is equal to N.
Step 2. Set each of the value of the array to be a random integer ranging from -2 to
+2, using a suitable random number generator.
3.2.3 Experimental Results and Discussions
Figure 3.5(a) is an input image; Figure 3.5(b) is the corresponding irregular-hexagonal-tiled image created by applying the above irregular-hexagonal-tiled image creation process. Here, the input width of the hexagonal tile is 6. Figure 3.5(c) is the irregular-hexagonal-tiled image created from
Figure 3.5(a), but with the input width of the hexagonal tile being 8.
(a)
(b)
Figure 3.5 Experimental results. (a) An original image. (b) An irregular-hexagonal-tiled image with width=6. (c) An irregular-hexagonal-tiled image with width=8.
(c)
Figure 3.5 Experimental results. (a) An original image. (b) An irregular-hexagonal-tiled image with width=6. (c) An irregular-hexagonal-tiled image with width=8. (continued)
3.3 Proposed Method for Data Hiding in Irregular-Hexagonal-tiled Images
3.3.1 Concept of Proposed Method
The main concept of the proposed method for data hiding in an irregular-hexagonal-tiled image is to adjust the locations of two specific vertices and modify the inner colors of the hexagonal tiles. We can hide thirteen bits into each hexagonal tile by these two techniques. First, we divide the bit stream sequence of a given secret message into several groups, each of which has thirteen bits. An example
is shown in Table 3.1. Second, we take the first two bits (part1) and check a
“matching table” shown in Table 3.2 to get the variation of the y coordinate of vertex4
of the hexagonal shape to be drawn. Repeating these operations similarly, we can get the variation of the x coordinate of vertex5. Then, we divide the remaining 9 bits (part3 to part5) into three parts, and transform them into decimal numbers. The decimal values are taken as the variations of the RGB values of the inner color of the hexagonal tile to be drawn, respectively. In short, we implement the desired information hiding work by utilizing these two techniques. The details will be stated clearly in Section 3.3.3.
Table 3.1 Components of hiding bits of a bit stream sequence of a given message.
12 11 10 9 8 7 6 5 4 3 2 1 0 bits order
Table 3.2 A matching table for specifying vertex position variations.
Hiding bits Variation
00 -2 01 -1 10 +1 11 +2
3.3.2 Data Combination and Disarrangement Processes
We assume, as done in the information paradigm that the secret information may be extracted by people who know the algorithm, so it is necessary to utilize a secret key to disorder the secret information before embedding it. The details of the data combination and disarrangement processes are described as an algorithm as follows.
Algorithm 3.3: data combination and disarrangement processes.
Input: a bit sequence of a secret message Mesi, a bit sequence of a watermark Wateri, and a bit sequence of a secret key Ki.
Output: a randomized bit sequence of the combination of the inputs Mesi and Wateri.
Steps:
Step 1. Create an empty array, Data, whose size is equal to that of Mesi plus Wateri. Step 2. Arrange the elements of Mesi into Data in order and append the elements of
Wateri into Data in order at the end of Mesi.
Step 3. Use the secret keyKi to create a random binary array, Key, whose size is equal to that of Data.
Step 4. Apply the exclusive-OR operator to Data and Key bit by bit to obtain a randomized bit sequence, DDatai, combining the secret message and the watermark.
3.3.3 Data Hiding Process
A flowchart of the data hiding process is shown in Figure 3.6. First, we derive a randomized Datai, denoted as DDatai, from the inputs Mesi and Wateri, using Algorithm 3.3. Then we divide DDatai into several string parts each of which has a
size of thirteen, and divide each of them further into five parts. An example is shown in Table 3.1. The first and the second parts specify the y and x coordinate variations of vertex4 and vertex5 of the hexagonal tile to be drawn, respectively. The other three parts are used as the augmentative values of the RGB values of the center colors of the hexagonal tiles in the original image. Finally, we apply the proposed irregular-hexagonal-tiled image creation process described previously. Then we can get a stego-irregular-hexagonal-tiled image. The detail of the data hiding process is described as an algorithm below.
Algorithm 3.4: data hiding in an irregular-hexagonal-tiled image.
Input: an image I, a secret message Mes, a watermark Water, and a secret key K.
Output: a stego-irregular-hexagonal-tiled image I'.
Steps:
Step 1. If the RGB values of any pixel of I are smaller than (8, 8, 8), respectively, we replace them with the RGB values (8, 8, 8). Set the RGB values of each pixel in I to be multiples of eight. That is, compute
new value r (denoted as Nvr) = (original r value / 8) × 8;
new value g (denoted as Nvg)= (original g value / 8) × 8;
new value b (denoted as Nvb)= (original b value / 8) × 8.
Step 2. Convert the secret message size into a bit stream sequence, and then use Algorithm 3.5 to embed it in the first hexagonal tile.
Step 3. Convert the watermark size into a bit stream sequence, and then use Algorithm 3.5 to embed it in the second hexagonal tile.
Step 4. Convert Mes and Water into bit sequences Mesi and Wateri, respectively.
Step 5. Use the secret key K, Mesi, and Wateri to derive a randomized bit stream sequence S by applying Algorithm 3.3.
Step 6. Divide S into several substrings, each of which has a size of thirteen.
Step 7. Use Algorithm 3.5 below to construct a stego-hexagonal tile in a raster scanning manner until all substrings are handled.
Algorithm 3.5: data hiding in a hexagonal tile.
Input: a hexagonal tile T and a binary substring s whose size is thirteen.
Output: a stego-hexagonal-tile T’. Steps:
Step 1. Take the fist part of s to check the matching table which is shown in Table 3.2, and compute the new y coordinate of its vertex4 as the found variation in the table plus the original y coordinate of the vertex in T.
Step 2. Take the second part of s to check the matching table, and compute the new x coordinate of its vertex5 as the variation found in the table plus the original x coordinate of the vertex in T.
Step 3. Transform the third part of s into a decimal integer, denoted as addR, and set the final value r equal to addR plus Nvr mentioned previously.
Step 4. Transform the fourth part of s into a decimal integer, denoted as addG, and set the final value g equal to addG plus Nvg.
Step 5. Transform the fifth part of s into a decimal integer, denoted as addB, and set the final value b equal to addB plus Nvb.
Step 6. Draw the hexagonal tile with a black border.
3.3.4 Data Extraction Process
The main concept of the data extraction process is to figure out the variations of the locations of every two specific vertices and the inner colors of the hexagonal tiles, and compose the data to recover the originally embedded secret message in a given
stego-image.
In vertex4, we only modified the y coordinate in the data embedding process and we know the original y coordinate. So, we just sequentially check the possible locations of vertex4, and then check the matching table shown in Table 3.2 to get the hidden bits. In vertex5, the situation is almost the same as in vertex4. The only difference is that the modified coordinate of vertex5 is the x coordinate. In this way, we can get four bits from vertex4 and vertex5. Then we proceed to get the RGB values
In vertex4, we only modified the y coordinate in the data embedding process and we know the original y coordinate. So, we just sequentially check the possible locations of vertex4, and then check the matching table shown in Table 3.2 to get the hidden bits. In vertex5, the situation is almost the same as in vertex4. The only difference is that the modified coordinate of vertex5 is the x coordinate. In this way, we can get four bits from vertex4 and vertex5. Then we proceed to get the RGB values