R语言图像素描效果
- 使用效果预览
- 前言
- 代码分享
- 细节
- 参考文献
使用效果预览:
前言:
之前在b站看视频的时候,无意间看见有的up主在使用matlab做图像锐化,便突发奇想,想在R语言里面也整一个看看。虽然网上有的大佬已经通过“rimage”实现了这个目的(已经将大佬的文章链接附在文后了),但是其中“rimage”包已经被移除了,不方便直接使用。为了解决这个问题,我找到了原始的“rimage”包的文件,取出了里面几个函数,在运行程序之前直接调用即可。这个可能是个笨办法,但是在无法安装“rimage”包的情况下还是可以试试的(附上原始文件地址:https://cran.r-project.org/src/contrib/Archive/rimage/)
代码分享:
需要使用"rimage"中的“imagematrix”和"rgb2grey"来实现素描效果,下图是包中函数的内容
library("jpeg")
library(grid)
library(colorspace)
blur <-function(x, grid, kernelf, ...)
{
if(grid < 3) stop("grid should begreat than or equal to 3!");
if(grid %% 2 == 0) stop("grid should beodd number!");
v <- sapply(1:grid - (grid + 1) / 2,kernelf, ...);
v <- v / sum(v);
r <- (grid - 1) / 2;
newx <- tmp <- x;
for(i in (r + 1):(nrow(x) - r))
{
tmp[i, ] <- colSums(x[(i - r):(i + r), ]* v);
}
for(j in (r + 1):(ncol(x) - r))
{
newx[, j] <-