一种颜色缩减的方法

void colorReduce(cv::Mat image,int div){
    int nr = image.rows;
    int nc = image.cols*image.channels();
    for(int i = 0;i<nr;i++){
        uchar* data= image.prt<uchar>(j);
        for(int j = 0;j<nc;j++){
                data[j] = data[j]/div*div + div/2;//除法结果取floor
        }//end of for j
    }end of for i
}end of function

`data[j] = data[j]/div*div + div/2` 这一句起到了归类的作用,感觉可以移植到别的算法里

与此类似的还有
```cpp
data[j] = data[j] - data[j]%div + div/2;

如果假设div为2的整数次幂
可以对象素取整的掩模来计算:

uchar mask = 0xFF<<n;
data[i] = (data[i]&mask) + div/2;
posted @ 2018-08-06 14:32  zengzhaocheng  阅读(110)  评论(0编辑  收藏  举报