总是出现这个错误,请大神指导!
附源程序:
#include <iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
void colorReduce(Mat &image,int div=64)
{int nl=image.rows;
int nc=image.cols;
if(image.isContinuous())
{nc=nc*nl;
nl=1;}
int n=static_cast<int>(log(static_cast<double>(div))/log(2.0));
uchar mask=0xFF<<n;
for(int j=0;j<nl;j++)
{uchar*data=image.ptr<uchar>(j);
for(int i=0;i<nc;i++)
{*data++=*data&mask+div/2;
*data++=*data&mask+div/2;
*data++=*data&mask+div/2;}}
}
int main()
{Mat image=imread("boldt.jpg");
colorReduce(image);
namedWindow("Image");
imshow("Image",image);
return 0;
}
附源程序:
#include <iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
void colorReduce(Mat &image,int div=64)
{int nl=image.rows;
int nc=image.cols;
if(image.isContinuous())
{nc=nc*nl;
nl=1;}
int n=static_cast<int>(log(static_cast<double>(div))/log(2.0));
uchar mask=0xFF<<n;
for(int j=0;j<nl;j++)
{uchar*data=image.ptr<uchar>(j);
for(int i=0;i<nc;i++)
{*data++=*data&mask+div/2;
*data++=*data&mask+div/2;
*data++=*data&mask+div/2;}}
}
int main()
{Mat image=imread("boldt.jpg");
colorReduce(image);
namedWindow("Image");
imshow("Image",image);
return 0;
}