- at方法
灰度图
image.at<uchar>(i,j)
彩色图
image.at<cv::Vec3b>(j,i)[channel]
OpenCV 存储通道数据的次序是蓝色、绿色和红色(因此通道0,1,2)
修改:
image.at<cv::Vec3b>(j, i) = cv::Vec3b(255, 255, 255)
void colorReduce(Mat& image,int div)
{
for(int i=0;i<image.rows;i++)
{
for(int j=0;j<image.cols;j++)
{
image.at<Vec3b>(i,j)[0]=image.at<Vec3b>(i,j)[0]/div*div+div/2;
image.at<Vec3b>(i,j)[1]=image.at<Vec3b>(i,j)[1]/div*div+div/2;
image.at<Vec3b>(i,j)[2]=image.at<Vec3b>(i,j)[2]/div*div+div/2;
}
}
}
- 指针实现
int nl = image.rows;//行
//将3通道转为1个通道
int nc = image.cols * image.channels();
for (int j