我有一些石头图像。石头的颜色是奶油状的,我想根据它们在颜色上的差异对图像进行分类。我想给出最轻的石头等级0和最黑暗的石头等级10,并在这两者之间对其他人进行分类。石头非常相似,但它们的色差可以通过眼睛检测到。
我知道是否所有的蓝色石头,例如我可以根据RGB颜色的R部分对它们进行分类。但是奶油色呢?根据颜色对图像进行排序
0
A
回答
2
你不需要去安装编译器和OpenCV的复杂性和编写/编译Python/C++代码来获得图像的平均亮度。您可以使用ImageMagick,它安装在大多数Linux发行版上,也可用于macOS和Windows。
基本上,你可以看看“轻”在HSL色彩空间或在实验室色彩空间。
让我们来看看HSL第一。
# Resize stone down to one average pixel, convert to HSL colourspace and print
convert stone1.jpg -resize 1x1 -colorspace HSL txt:
# ImageMagick pixel enumeration: 1,1,65535,hsl
0,0: (4228.92,19250.9,52587.2) #104BCD hsl(23.2305,29.375%,80.2429%)
因此HSL中stone1.jpg
的亮度为80.24%。让我们尝试stone2.jpg
:
convert stone2.jpg -resize 1x1 -colorspace HSL txt:
# ImageMagick pixel enumeration: 1,1,65535,hsl
0,0: (7387.85,27252.5,57243) #1D6ADF hsl(40.5833,41.5846%,87.3472%)
所以,stone2.jpg
为87.35%,轻
让我们简化输出,只显示亮度:
convert stone1.jpg -colorspace HSL -format "%[fx:int(100*mean.b)]" info:
80
和stone2.jpg
:
convert stone2.jpg -colorspace HSL -format "%[fx:int(100*mean.b)]" info:
87
现在让我们看看实验室 colourspace。
convert stone1.jpg -resize 1x1 -colorspace Lab txt:
# ImageMagick pixel enumeration: 1,1,65535,cielab
0,0: (53895.2,1140.43,2057.36) #D20408 cielab(82.2388%,1.74018%,3.13933%)
所以,stone1.jpg
有82.24%一实验室亮度,让我们来看看stone2.jpg
:
convert stone2.jpg -resize 1x1 -colorspace Lab txt:
# ImageMagick pixel enumeration: 1,1,65535,cielab
0,0: (59395,-21.0391,2545.27) #E7000A cielab(90.6309%,-0.36%,3.88383%)
所以,stone2.jpg
有90.6%的亮度。
如果我们想要更简单的形式呢?
convert stone1.jpg -colorspace Lab -format "%[fx:int(100*mean.r)]" info:
82
什么的百分比?它们是白色的百分比,所以纯白色是100%,纯黑色是0%。快速测试...
convert xc:black -colorspace Lab txt:
# ImageMagick pixel enumeration: 1,1,65535,cielab
0,0: (0,-0.5,-0.5) #000000000000 cielab(0%,-0.000762951%,-0.000762951%)
convert xc:white -colorspace Lab txt:
# ImageMagick pixel enumeration: 1,1,65535,cielab
0,0: (65535,0.125,-1.69336) #FFFF00000000 cielab(100%,0.000190738%,-0.0025839%)
如果你有一整个目录全石材样品的,你想为每个HSL亮度值?
convert stone* -colorspace HSL -format "%f:%[fx:int(100*mean.b)]\n" info:
stone1.jpg:80
stone2.jpg:87
stone3.jpg:75
stone4.jpg:92
2
我希望用他们的color.I差异图像分类想给最轻的石头0级和最黑暗的石级10和分类这两种人之间。石头非常相似,但它们的色差可以通过眼睛检测到。
如果您想要从浅到深的顺序排列,并考虑到色相,则RGB色彩空间不太适合。你应该看看Lab colour space或者Hue Saturation Lightness (HSL)色彩空间。
通过将图像转换为其中一个颜色空间,然后取平均值,然后可以将其分类为亮度和一个或两个颜色/色相轴。 (这是假设图像内容大部分是同质的)。
相关问题
- 1. 对颜色/颜色值进行排序
- 2. 如何根据颜色对RGB图像进行分类?
- 3. 按颜色对10,000个图像进行排序
- 4. 如何根据修改的日期对图像进行排序?
- 5. 根据内容对图像进行排序
- 6. 我们如何根据日期对图像进行排序
- 7. 如何根据使用jquery应用颜色的颜色对表格行进行排序
- 8. 使用Microsoft Excel中的图像显示颜色对列和行进行排序
- 9. 根据公共值对flot条形图颜色进行分类
- 10. 根据Playcount对MPMediaQuery进行排序
- 11. 根据生日对excel进行排序
- 12. 根据Value对Key进行排序HashMap?
- 13. 根据票数对人进行排序
- 14. 按颜色编码的单元格对数据进行排序
- 15. 根据条件对ArrayList数据进行排序和排序
- 16. 根据图像更改文本颜色
- 17. 对十六进制颜色值进行排序
- 18. 使用C#对十六进制颜色进行排序#
- 19. 根据倒计时对图像进行润色
- 20. Java:对地图进行排序,根据内部地图对<Long,Map <String,Data >>进行排序
- 21. 根据颜色选择器更改图像的颜色
- 22. 根据背景图像的颜色改变文本颜色
- 23. MySQL根据排序字段值对父/子进行排序
- 24. 如何根据特定列对网格视图进行排序?
- 25. 试图根据字符串值对列表进行排序
- 26. 根据用户定义的标准对地图进行排序?
- 27. 如何根据其参数值对图进行排序?
- 28. 根据中位数值对盒子图进行排序
- 29. 如何根据图像对所有LI下的src名称进行排序?
- 30. 根据日期对图像进行排序并在gridview中显示
你能上传一些样本图片吗?你是否成功地从背景中分割出石头?如果不是,那么由于背景噪声,设计基于颜色进行排序的算法将不能很好地工作。 – ZdaR
@ZdaR我从石头上传图片 – mohammad