【发布时间】:2019-08-28 22:13:34
【问题描述】:
我有灰度图像,其背景是 0-255 色阶的中白颜色,平均像素颜色值为 246;前景为中灰色,平均像素颜色值为 186。
我想将高于 246 的每个像素“移动”到 255,低于 186 的每个像素都“移动”到零,并“拉伸”介于两者之间的所有像素。是否有任何现成的算法/过程可以在 numpy 或 python 中执行此操作,或者必须“手动”计算新的级别/直方图(就像我到目前为止所做的那样)?
这相当于在 Gimp 或 Photoshop 中打开关卡窗口并分别使用白色和黑色吸管选择我们想要制作为白色的较亮区域和我们想要制作为黑色的较暗区域:应用程序修改相应的级别/直方图(“拉伸”所选点之间的值)。
我正在尝试的一些图片:
【问题讨论】:
-
请展示您尝试过的内容,可能带有图片。
-
发生了很多事情,但我试图将其总结为几张截图。
-
注:我这样做的原因是因为现有算法会生成文本,虽然是黑色的,但缺少补丁和间隙。不过,OpenCv 设法很好地找到计数,我使用它们来创建定义哪些区域应该被平均的掩码,正是它给出了要上下敲击的两个值..
-
您可以按照您的描述进行操作:(1) 将高于 246 的所有像素阈值设置为 255 (2) 将低于 186 的所有像素阈值为零 (3) 将介于两者之间的所有像素标准化为最大值 244。我认为没有任何现成的算法可以解决这个问题,因为实现所需结果的所有 3 个步骤都是微不足道的。
标签: python numpy image-processing