绘制灰度图像时出错

时间:2014-08-03 17:01:30

标签: r jpeg grayscale svd

我正面临在R中生成灰色图像的问题。错误显示“灰色错误(img):无效灰度级,必须在[0,1]中。”我不太清楚这里必须做些什么。请帮忙。

library(jpeg)
library(biOps)
x <- readJpeg("C:\\Users\\Pictures\\Photo.jpg")
dim(x)
#  [1] 1030 1560    3
plot(x)  ## a beautiful color image comes up

r <- imagedata(x, type = "grey")
plot(r)  ## grey version of the color image comes up

#### Running SVD on the grey image matrix
r.svd <- svd(r)
d <- diag(r.svd$d)
dim(d)
# [1] 1030 1030

u <- r.svd$u
v <- r.svd$v
plot(1:length(r.svd$d), r.svd$d)
u1 <- as.matrix(u[-1, 1])
v1 <- as.matrix(v[-1, 1])
d1 <- as.matrix(d[1, 1])
l1 <- u1 %*% d1 %*% t(v1)
l1g <- imagedata(l1, type = "grey")
plot(l1g) #### an image with grey lines comes up

enter image description here

us <- as.matrix(u[, 1:5])
vs <- as.matrix(v[, 1:5])
ds <- as.matrix(d[1:5, 1:5])
ls <- us %*% ds %*% t(vs)
lsg <- imagedata(ls, type = "grey")
plot(lsg)
# Error in grey(img) : invalid gray level, must be in [0,1].

请帮我解决这个错误。我期待在这种情况下弹出一个模糊的图像版本。

0 个答案:

没有答案