The Art of R Programming

(WallPaper) #1
As the comments indicate, we generate random noise and then take a
weighted average of the target pixels and the noise. The parameterqcontrols
the weight of the noise, with largerqvalues producing more blurring. The
random noise itself is a sample from U(0,1), the uniform distribution on the
interval (0,1). Note that the following is a matrix operation:

newimg@grey <- (1-q)*img@grey + q*randomnoise

So, let’s give it a try:

> mtrush3 <- blurpart(mtrush1,84:163,135:177,0.65)
> plot(mtrush3)

The result is shown in Figure 3-3.

Figure 3-3: Mount Rushmore, with President Roosevelt blurred

3.2.4 Filtering on Matrices............................................


Filtering can be done with matrices, just as with vectors. You must be careful
with the syntax, though. Let’s start with a simple example:

>x
x
[1,] 1 2
[2,] 2 3
[3,] 3 4
> x[x[,2] >= 3,]
x
[1,] 2 3
[2,] 3 4

66 Chapter 3

Free download pdf