使用EBImage软件包将R中的rgb图像转换为二进制图像

使用EBImage软件包将R中的rgb图像转换为二进制图像,r,image-processing,R,Image Processing,我需要将rgb图像转换为二进制图像,这样我就可以使用bwlabel()函数来检测R中图像中的对象数。我刚刚开始进行图像处理,所以我不知道如何处理。我正在使用EBImage软件包。 有人能帮我吗?? 谢谢包装中的lenac图像示例: lenac = readImage(system.file("images", "lena-color.png", package="EBImage")) lena = channel(lenac, "gray") lena5 = lena > 0.5 labe

我需要将rgb图像转换为二进制图像,这样我就可以使用bwlabel()函数来检测R中图像中的对象数。我刚刚开始进行图像处理,所以我不知道如何处理。我正在使用EBImage软件包。 有人能帮我吗??
谢谢

包装中的lenac图像示例:

lenac = readImage(system.file("images", "lena-color.png", package="EBImage"))
lena = channel(lenac, "gray")
lena5 = lena > 0.5
labels = bwlabel(lena5)
max(labels)

在lena图片中给出770个对象。因为这是一张脸的图片,所以将它划分为对象可能没有多大意义。尝试不同的阈值值,直到得到合理的值-这取决于正在处理的图像类型。

使用通道函数将图像转换为黑白,然后使用阈值将其转换为二进制图像。然后,您可以使用bwlabel来标识连接像素集的数量。请注意,您得到的结果将非常依赖于您选择的阈值。请参阅小插曲:如何为图像选择最佳阈值??这取决于您要执行的操作。我建议尝试不同的阈值,直到你得到一个对手头的任务有意义的答案。下面是Lena图像的示例。