r - 将矩阵绘制为 cimg 对象时如何关闭平滑/模糊
问题描述
我正在尝试绘制这种棋盘格模式:
checker_pattern <- rbind(c(1/3, 2/3),
c(2/3, 1/3))
plot(imager::as.cimg(checker_pattern))
根据这个网站http://www.sumsar.net/blog/2019/01/image-dithering-in-r/,我们应该得到以下结果,这也是我想要的:
但是,我得到这个结果运行完全相同的代码:
为什么 R 似乎模糊或平滑了图中的颜色?如何关闭这种模糊?
一个类似的问题(R mschart turn off line smoothing)提到了缩放。我不知道这是否给我们提供了在这种情况下的线索。
解决方案
回答
将interpolate
参数设置为FALSE
(此外,rescale
设置为FALSE
):
plot(imager::as.cimg(checker_pattern), interpolate = FALSE, rescale = FALSE)
基本原理
这与 R 无关,与imager
包(或者更确切地说,cimg
对象)有关。您正在创建一个对象的类cimg
,然后进行激发plot.cimg
。该函数有一个interpolate
参数,默认为TRUE
. 然后将其馈送到as.raster
下游的函数中,该函数应用插值。通过设置interpolate = FALSE
您可以消除此效果。
按照相同的过程,我发现plot.cimg
也有一个rescale
参数,默认为TRUE
. 将其设置为FALSE
正确显示颜色。
您可以通过键入 找到有关此功能的更多信息?plot.cimg
。
推荐阅读
- rest - 使用 cURL 的 HTTP GET 给出 SSL 错误
- oracle - 将 Oracle DB 添加到 ODBC 连接时出错
- powershell - 如何在 Powershell 中注册事件以使其保持永久状态?
- openmp - 并行使用 Eigen LeastSquaresConjugateGradient
- c# - 动态加载所有应用程序程序集 -asp net core
- java - 使用 java 使用 iText 删除添加到单个 pdf 文件中的图像之间的空间。
- tomcat - tomcat 常量池大小
- html - 如果底部低于视口,CSS将元素垂直拉伸到底部
- angular - Angular 5&6 测试错误:无法加载指令 AppComponent 的摘要
- php - 在 MacOS High Sierra 版本 10.13.4 更新后本地运行 MySQL