0
予加载的图像original_pre尺寸160x60的,以下是代码为什么垫子类型不同?
original_pre = cvLoadImage(input, 0);
int border = 5;
CvMat* original_mat = cvCreateMat(original_pre->height-2*border, original_pre->width-2*border, CV_8UC3);
original = cvCreateImage(cvSize(original_pre->width-2*border, original_pre->height-2*border), original_pre->depth, original_pre->nChannels);
cvGetSubRect(original_pre, original_mat, cvRect(border,border,original_pre->width-2*border,original_pre->height-2*border));
cvFloodFill(original_mat,cvPoint(0,0),cvScalarAll(0),cvScalarAll(1),cvScalarAll(1));
CvMat* original_open_mat = cvCreateMat(original_pre->height-2*border, original_pre->width-2*border, CV_8UC3);
CvMat* temp = cvCreateMat(original_pre->height-2*border, original_pre->width-2*border, CV_8UC3);
cout<<original_mat->width<<" "<<original_mat->height<<" "<<original_open_mat->width<<" "<<original_open_mat->height<<" "<<CV_MAT_TYPE(original_mat->type)<<" "<<CV_MAT_TYPE(original_open_mat->type)<<" "<<CV_8UC3<<endl;
cvMorphologyEx(original_mat,original_open_mat,temp,NULL,CV_MOP_OPEN);
此时,floodFill操作original_mat和original_open_mat的类型是不同的后。 印刷结果是
150 50 150 50 0 16 16
OpenCV Error: Assertion failed (src.size() == dst.size() && src.type() == dst.type()) in cvMorphologyEx, file /home/ataosky/software/OpenCV-2.4.3/modules/imgproc/src/morph.cpp, line 1353
的original_mat的类型是0而original_open_mat的类型是16 为什么呢?