我得到了一个分配,我必须将8位灰度图像转换为10,7,4,3和1位表示。
由于opencv似乎没有提供与8,16,32等不同的位深度,所以我不知道如何实现这一点。
基本上我需要的是一种减少像素中包含的信息量的方法,直到我最终得到黑白图像(1位表示)。
编辑:我不确定转换应该如何工作,但我猜我们需要执行右移操作。那样
0b11111111
最终将成为
0b1
问题是opencv会理解为:
0b00000001
这不会让我留下我应该的黑白图像。
如果你有时间,理论上会解释这个过程here
答案 0 :(得分:1)
您可以使用convertScaleAbs轻松地将图像缩放到8位,然后您可以进行位移或除可缩小到更少的位。
如果你想转换为1位,有些算法会选择一个最佳值,而不仅仅是> 128 = 1和<128 = 0