我正在编写一个图像二值化算法,它只是将每个像素的亮度值(灰度图像)转换为黑色或白色。目前对每个像素进行二值化的算法大致是这样的
if( grayscale[x] < thresholdValue)
{
bitonal[x] = 1;
}
(这实际上是 ACTUAL 算法的简化,因为双色调图像实际上是一个位压缩图像(每个数组索引包含 8 个像素)所以我实际上将 1 位压缩到当前数组索引中......但我不认为这会改变我的问题。
我正在尝试做的是消除对 if 语句的需要。
我的想法是按照这个思路做一些事情。用灰度减去 thresholdValue,然后执行一些位操作技巧来清除或移位位,这样如果(grayscale[x]-threshold) is less than 0, I get a 0. otherwise I would get a 1
. 如果以另一种方式更容易做到这(if grayscale[x]-threshold < 0 + bitwise trickery get a 1, else get a 0)
一点也可以工作......只要我可以摆脱分支语句......任何帮助表示赞赏..