HSV色彩空间和图像直方图功能

时间:2014-10-21 07:19:57

标签: image-processing

我有植物彩色图像,包含植物,盆栽和土壤。我试图通过使用hsv颜色空间来分割植物的绿叶,然后获取每个空间的图像直方图,但我不知道如何从Matlab中的图像直方图功能中受益。有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

只是为了好玩而且在得到Matlab答案之前,你可以使用ImageMagick做到这一点,ImageMagick是免费的,安装在大多数Linux发行版上,可以下载到OSX和Windows。

让我们从一个带有土壤的番茄植物开始:

enter image description here

现在使用ImageMagick convert删除(即透明)所有非绿色像素:

convert plant.jpg -fill black -fuzz 15% +opaque rgb\(128,170,100\) -transparent black out.png

所以现在它看起来像这样:

enter image description here

现在,如果您想要直方图,请运行此命令以生成直方图,然后按最常出现的颜色排序:

convert out.png -format "%c" histogram:info: | sort -rn | more
  91278: (  0,  0,  0,  0) #00000000 none
     18: (128,169,103,255) #80A967 srgba(128,169,103,1)
     16: (126,167,101,255) #7EA765 srgba(126,167,101,1)
     16: (125,166,100,255) #7DA664 srgba(125,166,100,1)
     15: (121,162, 94,255) #79A25E srgba(121,162,94,1)
     14: (124,165, 99,255) #7CA563 srgba(124,165,99,1)
     14: (122,163, 97,255) #7AA361 srgba(122,163,97,1)
     13: (120,161, 93,255) #78A15D srgba(120,161,93,1)
     12: (130,171,105,255) #82AB69 srgba(130,171,105,1)
     12: (129,170,104,255) #81AA68 srgba(129,170,104,1)

第一行显示(不需要的)透明像素(参见最后的零),然后下一个最常出现的颜色是RGB(128,169,103),其中18个像素的颜色。