【发布时间】:2021-11-20 16:15:03
【问题描述】:
大家,
我正在尝试将高度颜色图图像 (RGBA) 转换为 2D 矩阵,以便我们对其进行处理。我认为这将是一个完善的程序,但我找不到任何现有的功能来执行此操作。
这是我的颜色图,红色表示较高的区域(峰),蓝色表示较低的区域(谷),范围从(蓝色)-10到(红色)10 um
图像是铣削表面的表面形貌。我们希望通过取矩阵的平均值(算术平均高度)来获得粗糙度 Ra。我们也有 Ra 的测量值,所以我们可以比较看看我们的计算是否正确。
我尝试将 rgb 转换为 hsv,并希望找到高度和色调值之间的某种关系(我确实将色调值转换为 -10 到 10)。但似乎计算出的 Ra 与测量值相差甚远。另外,我在计算图像粗糙度的时候已经把边缘剪掉了。
请问有人知道这个问题吗?首选 Python 或 matlab,但其他平台/语言也可以。
RGBa图片没有相对标注,这里是图片的彩条。 Color scale
【问题讨论】:
-
你需要精确的颜色比例来创建图像。有各种方法可以从蓝色/低到红色/高,但如果你不使用精确的 1:1 ( color:height) scale 那么你会计算出不正确的结果。如果色标是相对的,您还需要图像上最高点和最低点之间的绝对距离。如果您只看图片,您会丢失太多信息。
-
感谢您的回复!是的,图像上没有色标。由于我们需要使用图像进行分析,所以我没有把它放在那里,但我们确实在其他地方列出了一个颜色条。图像从 -10 缩放到 10,显示颜色不是相对的。请问这个色标应该怎么用?
-
然后简单地将每个像素的RGBa值替换为色标对应的高度值。
-
你有例子吗?一开始我也想过,但不知道如何将mn*4矩阵(RGBa图像)映射到jk矩阵(高度)。我不想逐像素转换,因为我们有 1000 多张图像,我担心它会花很长时间。
-
您正在将 m*n*4 矩阵转换为 m*n*1 矩阵,并且您必须通过以下方式进行转换像素像素。任何其他涉及更复杂图像处理的方法将花费更多更长的时间并产生更不精确的结果。
标签: python matlab rgb colormap heightmap