计算黑色像素比

Posted

技术标签:

【中文标题】计算黑色像素比【英文标题】:Calculate the black pixel ratio 【发布时间】:2020-06-29 21:39:34 【问题描述】:

从图像中,我想尽可能准确地计算:

黑与白的整体比例 哪些水平线的黑色像素最多。我想要前 3 行。 哪些垂直线的黑色像素最多。我想要前 3 行。 对于前 3 条水平线中的每一条,黑色与白色的比例是多少。 对于前 3 条垂直线中的每一条,黑色与白色的比例是多少。

图片示例:

【问题讨论】:

【参考方案1】:

在 opencv 中,您可以使用 Count non Zero 来计算黑色像素的数量。有了像素总数,您可以轻松找到比率。

对于一个区域的像素数,我建议使用与上述相同的函数,但在特定区域 (ROI)。

为了准确起见,我之前会使用阈值。 Threshold

【讨论】:

【参考方案2】:

使用您要使用的任何线扫描系统来获取白色像素的数量和总像素的数量(如果您正在扫描具有多种颜色的图像,也可以使用黑色)。您可以将每一行存储为对象或元组或其他任何内容,然后将每行添加到列表中。按黑色像素对列表进行排序,您可以轻松找到前三名。

重复创建行列表。

比率是对前三行中的每一行执行的简单除法。您甚至可以将其存储为属性。

@property
def ratio_of_black_to_white(self):
  return self.black_px / self.white_px

【讨论】:

以上是关于计算黑色像素比的主要内容,如果未能解决你的问题,请参考以下文章

如何在PIL中选择与图像边缘相邻的所有黑色像素?

设备像素比+图片高清显示+移动适配

快速高效地获取屏幕(视图)黑色像素

使用 OpenCV 计算图像中所有不同区域的像素

window.devicePixelRatio 独立像素比(经典文章+原创)

Python - 删除源自图像边界的黑色像素