如何准确找到图像中某种颜色的百分比?例如,我实际上是在尝试找出这张图片中藤壶在船体红色部分上的百分比。 http://thumb1.shutterstock.com/display_pic_with_logo/1498544/150482510/stock-photo-barnacles-barnacles-perched-on-the-red-buoy-150482510.jpg
如何量化图像中的感兴趣区域?
鉴于藤壶的大小预计不会比在某个镜头上成像的船体区域大很多,您可以通过计算属于船体的像素数然后乘以您可以通过在图像中包含已知长度的项目来获得“像素大小”。
这种(简单)技术背后的关键假设是藤壶和船体存在于同一平面上(好像藤壶层是船体上的“贴纸”)。
显然,情况并非如此,因为藤壶是三维的并且“伸出”船体。出于同样的原因,船体特定部分的成像角度也可能会引入额外的误差因素。
您可以通过对船体的相对较大区域进行成像来控制所有这些(即相机与船体的距离相对较长),注意相机垂直指向尽可能多的船体(这当然与“远距离拍照”相冲突,需要进行一些实验)。最后,您还需要很好地控制镜头的照明,因此,您可能必须使用闪光灯(即使在日光下)使场景均匀地充满光线并避免阴影。
拍摄完图像后,您可以将其颜色空间从红色、绿色、蓝色 (RGB) 转换为色相、饱和度、亮度 (HSB),并检查色相分量的直方图以了解船体的均匀颜色(此处为红色,因为这个,比较容易挑出来)。同样,这假设船体仅使用一种颜色进行涂漆。
这是Gimp中的过程:
屏幕截图底部的三个小黑白图像分别是 HSB 组件。右上角的直方图来自 H 分量(屏幕截图左下角的第一张黑白图像)。
如您所见,在 H 光谱的开头有一个明显的峰值,对应于红色(请查看此图像中的 H 波段以了解直方图的水平轴现在如何“对应”色调值)。
如果船体上有一个已知长度的物体(例如钢笔或硬币的铁水线浮雕),我们可以推导出像素大小,并通过它推导出整个图像的实际表面。然后通过计算有多少像素“属于”峰值,我们可以推断出藤壶占据的实际表面。
例如:
图片尺寸:像素
对应红色的像素:
(请注意:由于图像的大小,您可能看不到这一点,但是一旦您在 GIMP(颜色->信息->直方图)中获得直方图,您就可以在直方图上标记一个区域并读取它描述的像素数。这个是如何得出这个数字的。)。
藤壶覆盖面积(%):
您现在只需要一个已知大小的对象将其转换为
在自动化这个过程方面,可以使用多种技术和平台(例如 Python、Octave 等)来完成,但是为了更准确地重新评估这些,需要关于应用程序的更多细节。
希望这可以帮助。
