我减少图像中的颜色数量,此示例来自OpenCV书 利用整数除法将底色除法到最接近的较低整数。
可以,但是我不明白这是目的
void colorReduce(Mat image, int div){
//div the factor
int rows = image.rows;
int cols = image.cols;
int numPxC = cols * image.channels();
for (int i = 0; i < rows; i++) {
uchar* data = image.ptr<uchar>(i);
for (int j = 0; j < numPxC; j++) {
data[j] = data[j] / div * div + div / 2;
}
}
}
我实际上不明白那是什么,目的是什么。
数据[j] =数据[j] / div * div + div / 2;
如果数据[j] = 255,并且div = 64。
结果将是:(255/64)* 64 +(64/2)=(3.9843)* 64 +(32)= 255 + 32 = 287。
方法 255/64,然后* 64?,结果超出了uchar限制 请帮助我,谢谢