r - 返回具有给定 RGB/HEX 值的像素坐标
问题描述
假设我有一张像下面这张笑脸的图像:
我想编写一个 R 脚本,返回蓝色像素的像素坐标。理想情况下,我想在使用此包/功能时指定蓝色的 RGB/HEX/etc 值,而不是使用阈值或逻辑计算来查看像素是否为“白色”或“非白色” '。我知道 Python 和 MATLAB 中有工具和包,但我想知道 RI 中是否有合适的包可以代替。谢谢!
解决方案
您可以使用该包将 PNG 作为 3d 数组 (n_rows x n_columns x (R, G, B, alpha)) 加载png
。然后你可以做这样的事情:
find_pixels <- function(png_path, string)
{
img <- 255 * png::readPNG(png_path)
R <- as.numeric(paste0("0x", substr(string, 2, 3)))
G <- as.numeric(paste0("0x", substr(string, 4, 5)))
B <- as.numeric(paste0("0x", substr(string, 6, 7)))
which(img[,,1] == R & img[,,2] == B & img[,,3] == G, arr.ind = TRUE)
}
find_pixels("~/smiley.png", "#FAFAFA")
#> row col
#> [1,] 1 1
#> [2,] 2 1
#> [3,] 3 1
#> [4,] 4 1
#> [5,] 5 1
#> [6,] 6 1
#> ... etc
推荐阅读
- php - 如何自定义多维数组?
- symfony - 使用 FOSUserBundle 时遇到防火墙问题
- laravel - 我在heroku上部署laravel项目,但是当我写“git push heroku master”时它显示“错误:依赖安装失败!”
- ios - IOSApp无法安装
- couchdb - 从 CouchDB v2.2.0 获取 502 Bad Gateway,并且每次使用新的 PID 重新启动 beam.smp
- android - (#100) 尝试将视频发布到 Facebook 页面时出现“主题应该是页面帐户”错误
- java - rxjava中throttleLatest和throttleLast有什么区别?
- keyboard - 有没有定义键码和/或键符的标准?
- go - 如何下载fabric-sdk-go的所有依赖?
- sql - SQL命令需要一个名为“@SessionID”的参数,在参数映射中没有找到