刚开始学习OpenCV编程,写了一个程序:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
void colorReduce( cv::Mat &image, int div=64 )
{
int nl = image.rows;
int nc = image.cols * image.channels();
for(int j=0; j<nl; j++)
{
uchar *data = image.ptr<uchar>(j);
for( int i=0; i<nc; i++)
{
data[i] = data[i]/div*div + div/2;
}
}
}
int main(void)
{
cv::Mat image = cv::imread("/home/fighting324/Pictures/lena.jpg");
colorReduce( image );
cv::namedWindow("colorReduced", CV_WINDOW_AUTOSIZE);
cv::imshow("colorReduced", image);
cv::waitKey();
}
后来运行时出现了这样的一个错误:OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/fighting324/app/opencv/modules/high