将单色图像转换为x,y坐标为数据帧

时间:2016-11-04 09:40:23

标签: r image coordinates monochrome

我想将单色图像的“黑色值”转换为x-y点,以便稍后在散点图中绘制它们。

链接中的以下图片很容易解释我正在寻找什么。

enter image description here

我也想控制“每个区域的点数”!

让我们:

http://www.tieudesigns.com/tutorials/tutorial_0001/golf_01.jpg

作为我们的示例图片。

编辑:

这是我想出的:

> library("magick")
> test <- image_read('*CENSORED*\\white-circle-black-background.jpg')
> testDS <- as.raster(test)

1 个答案:

答案 0 :(得分:0)

在评论中展示我所暗示的内容。当我在命令行使用 ImageMagick 显示技术时,您必须调整方法R

convert mask.jpg -threshold 50% -colorspace gray -fx "(1-u)*rand()>0.8 ? 0:1" result.png

enter image description here

或更改阈值:

convert mask.jpg -threshold 50% -colorspace gray -fx "(1-u)*rand()>0.9 ? 0:1" result.png

enter image description here

有趣的部分显然是-fx表达式,它使用每个像素的值 - 称为u - 并在范围[0,1]上缩放,其中0为黑色,1为白色。基本上我反转像素(1-u)并乘以一个随机数,然后将其阈值。更改阈值会更改像素密度。根据结果​​,我输出黑色或白色像素。

我不确定将这些值转换为坐标“是什么意思,但如果你真的想要一个黑色像素坐标列表:

convert mask.jpg -threshold 50% -colorspace gray -fx "(1-u)*rand()>0.8?0:1" -depth 8 txt: | grep "(0)"

示例输出

2,0: (0)  #000000  gray(0)
4,0: (0)  #000000  gray(0)
6,0: (0)  #000000  gray(0)
7,0: (0)  #000000  gray(0)
8,0: (0)  #000000  gray(0)
10,0: (0)  #000000  gray(0)
13,0: (0)  #000000  gray(0)
14,0: (0)  #000000  gray(0)