我正在阅读“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
答案 0 :(得分:1)
书中似乎有一个打印错误,我已经确认书中的代码即使在输入拼写错误之后也不起作用。我已将反馈发送给作者。正确的部分应该是:
newimg <- img
newimg@grey[rows,cols] <- (1-q) * img@grey[rows,cols] + q * randomnoise