模糊图像的一部分

时间:2013-01-15 06:15:17

标签: r

我正在阅读“The R of R编程”,并且发现了这篇文章:

# adds random noise to img, at the range rows,cols of img; img and the
# return value are both objects of class pixmap; the parameter q
# controls the weight of the noise, with the result being 1-q times the
# original image plus q times the random noise
blurpart <- function(img,rows,cols,q) {
  lrows <- length(rows)
  lcols <- length(cols)
  newimg <- img
  randomnoise <- matrix(nrow=lrows, ncol=ncols,runif(lrows*lcols))
  newimg@grey <- (1-q) * img@grey + q * randomnoise
  return(newimg)
}

我的问题是关于这一行:

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

newimg@grey最终与img@grey的大小相同。由于randomnoise是较小的矩阵,newimg@grey部分如何识别图像的哪个部分模糊。

我认为应该是这样的:

newimg <- img
newimg@grey[rows,cols] <- (1-q) * img@grey[rows,cols] + q * randomnoise

1 个答案:

答案 0 :(得分:1)

书中似乎有一个打印错误,我已经确认书中的代码即使在输入拼写错误之后也不起作用。我已将反馈发送给作者。正确的部分应该是:

newimg <- img
newimg@grey[rows,cols] <- (1-q) * img@grey[rows,cols] + q * randomnoise