cvtColor(img1, img1,CV_GRAY2BGR);
Mat clahe_img(img1.cols,img1.rows,CV_8UC3);
cvtColor(img1, clahe_img, CV_BGR2Lab);//RGB空间与Lab空间转换
vector channels(3);
split(clahe_img, channels);
Ptr clahe = createCLAHE();
//// 直方图的柱子高度大于计算后的ClipLimit的部分被裁剪掉,然后将其平均分配给整张直方图
//// 从而提升整个图像 clahe->setClipLimit(4.);
//// (int)(4.*(8*8)/256)
////clahe->setTilesGridSize(Size(8, 8));
//// 将图像分为8*8块
channels[0].convertTo(channels[0], CV_8UC1);
Mat dst; //// 直方图的柱子高度大于计算后的ClipLimit的部分被裁剪掉,然 后将其平均分配给整张直方图
//// 从而提升整个图像 clahe->setClipLimit(4.);
//// (int)(4.*(8*8)/256)
////clahe->setTilesGridSize(Size(8, 8));
//// 将图像分为8*8块
clahe->apply(channels[0], dst);
dst.copyTo(channels[0]);
cout << "clahe_img的通道数为:" << clahe_img.channels() << endl;
merge(channels, clahe_img);
出现OpenCV(3.4.1) Error: Assertion failed (mv[i].size == mv[0].size && mv[i].depth() == depth) in cv::merge,怎么解决,求大神指导一下
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-