OpenCV 处理灯光点

if (isCheck)  {            

imageMat.copyTo(mRgbaMat);      

// READ RGB color image and convert it to Lab   

 cv::Mat rgbImageMat;    

cv::cvtColor(mRgbaMat, rgbImageMat, CV_RGBA2RGB);    

cv::Mat bgr_image;    rgbImageMat.copyTo(bgr_image);   

cv::Mat lab_image;    

cv::cvtColor(bgr_image, lab_image, CV_RGB2Lab);   

 //  保存图片    

if(imageCont < 3){    

[self saveMat:@"第一步" src:mRgbaMat];    

}        

// Extract the L channel    

std::vectorlab_planes(3);    

cv::split(lab_image, lab_planes); 

 // now we have the L image in lab_planes[0]       

 // apply the CLAHE algorithm to the L channel    

cv::Ptrclahe = cv::createCLAHE();

clahe->setClipLimit(4);

cv::Mat dst;

clahe->apply(lab_planes[0], dst);

// Merge the the color planes back into an Lab image

dst.copyTo(lab_planes[0]);

cv::merge(lab_planes, lab_image);

// convert back to RGB

cv::Mat image_clahe;

//cv::cvtColor(lab_image, image_clahe, CV_Lab2BGR);

cv::cvtColor(lab_image, image_clahe, CV_Lab2RGB);

// display the results  (you might also want to see lab_planes[0] before and after).

//  保存图片

if(imageCont < 3) {

[self saveMat:@"original" src:bgr_image];

}

//  保存图片

if(imageCont < 3){

[self saveMat:@"CLAHE" src:image_clahe];

}

self.MyImageView.image = MatToUIImage(mRgbaMat);

}


原图:



效果图:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言opencv在图像处理中使用广泛,许多常见的应用场景例如人脸识别,车牌识别等都是基于opencv开发的。本文是...
    肖丹晨阅读 10,464评论 0 4
  • 我是在闺蜜的婚礼上认识苏锦的,他是男方的朋友,走过来的时候神色飞扬,我从来没有见过那样一双眼睛,不说话的时候深邃如...
    凡人足够阅读 1,495评论 0 1
  • 赶路的东西南北, 等车的一列长队。 胡琴声泣嘈杂中, 天下何处无伤悲。
    珠江潮平阅读 955评论 3 7
  • 看到《精进》这个书名,我没有联想到这会是一本关于如何成为一个很厉害的人的工具书。”精进“一词来自佛教,意为努力向善...
    一笑而过2023阅读 1,950评论 0 0